Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вытащить ссылки из html-кода - PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: В базе данных хранится данные в виде html-тегов
Seleba007
Отправлено: 03 Октября, 2016 - 15:44:46
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Окт. 2016  


Помог: 0 раз(а)




В базе данных хранится данные в виде html-тегов:
CODE (html):
скопировать код в буфер обмена
  1.  
  2. html: <script type="text/javascript" src="/jwplayer/jwplayer.js"></script> <div id="myElement">ГђпїЅГђ°ГђВіГ‘пїЅГ‘пїЅГђ·ГђВєГђ° ГђВїГђ»ГђµГђµГ‘пїЅГђ°...</div> <script type="text/javascript"> jwplayer("myElement").setup({ file: "https://nas.dcp24.ru/preview/NEWERAZ_TRL_SCOPE.mp4", image: "https://nas.dcp24.ru/thumb/NEWERAZ_TRL_SCOPE.jpg", width: 560, height: 315, title: "ГђпїЅГђВѕГђВІГђ°Г‘пїЅ Г‘пїЅГ‘пїЅГђ° Z" }); </script>
  3.  

А мне нужно получить отдельно две ссылки: https://nas.dcp24.ru/preview/NEWERAZ_TRL_SCOPE.mp4, https://nas[dot]dcp24[dot]ru/thumb/NEWERAZ_TRL_SCOPE[dot]jpg используя php. Подскажите, пожалуйста как это можно сделать!
 
 Top
Fart
Отправлено: 03 Октября, 2016 - 18:31:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


Помог: 10 раз(а)




можно так:

1. только ссылки:

preg_match_all("/http.+mp4|http.+jpg/", $t, $a);
var_dump($a);

2. ссылки с расширением файлов:

preg_match_all("/http.+(jpg|mp4)/U", $t, $a);
var_dump($a);

однако хочу оговориться: если данные с чужого сайта и результат регулярки выкладывать к себе на сайта, то такая выборка небезопасна. есть риск в "ответку" получить xss-атаку.

стоит обезопасить, к примеру:

1. только ссылки

preg_match_all("/http[^<>]+mp4|http[^<>]+jpg/", $t, $a);
var_dump($a);

2. ссылки с расширением файлов:

preg_match_all("/http[^<>]+(jpg|mp4)/U", $t, $a);
var_dump($a);

далее проверяешь: имеется ли ссылка, если нет - значит данные могут быть с xss
(Добавление)
лучший вариант с исключением xss (если не будет соответствовать ссылке в примере то будут данные пустые):

preg_match_all("/http*:\/\/\w+\.*\w+\.\w+\/\w+\/\w+\.(jpg|mp4)/U", $t, $a);
var_dump($a);

[s](Отредактировано автором: 04 Октября, 2016 - 01:34:16)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB