Автор Тема: поиск ссылок в массиве на пхп  (Прочитано 1779 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Unregistered

  • Гость
поиск ссылок в массиве на пхп
« : 24 Августа 2002, 18:53:56 »
Привет Алл!..
Есть задача...
1. качается некий текст
2.в нем надо найти ссылки например типа http://www.ru
причем если у ссылки есть какие-либо параметры, т.е. http://www.ru/index.php?id=222&user=qwerty
то надо брать ссылку целиком.
3. Вывести все ссылки по порядку...
  например:
 ссылка1:http://www.ru/index.php?id=222&user=qwerty
 ссылка2:http://www.ru/index.php?id=222&user=1234234
 ссылка3:http://www.ru/index.php?id=222&user=123

Оффлайн Дмитрий Попов

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 264
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.programmist.spb.ru
поиск ссылок в массиве на пхп
« Ответ #1 : 24 Августа 2002, 19:39:10 »
$text= eregi_replace("((ht|f)tp://)((([a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3}))|(([0-9]{1,3}\\.){3}([0-9]{1,3})))((/|\\?)[a-z0-9~#%&\'_\\+=:\\?\\.-]*)*)", "\\\\0", $text);

Это заменяет URL\'s на ссылки...

Можно через eregi искать совпадения...

В общем, формула (RegEX) что бы найти:

((ht|f)tp://)((([a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3}))|(([0-9]{1,3}\\.){3}([0-9]{1,3})))((/|\\?)[a-z0-9~#%&\'_\\+=:\\?\\.-]*)*)

Не знаю, как качается текст, но, теоретически, можно читать его построчно, и сделать что-то вроде:

$mass[]= eregi_replace("((ht|f)tp://)((([a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,3}))|(([0-9]{1,3}\\.){3}([0-9]{1,3})))((/|\\?)[a-z0-9~#%&\'_\\+=:\\?\\.-]*)*)", "\\\\0", $text);

Тогда массив $mass - и будут все URL, достаточно будет вывести этот массив..
 За Родину! За Россию!
SendMail для любого хостинга.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28