Вопрос № 69344: Здравствуйте ув. эксперты, с новым годом!
есть маленький вопрос:
как извлечь ссылки из переменной, если в переменной находится страница сайта...
Вопрос № 69.344
Здравствуйте ув. эксперты, с новым годом!
есть маленький вопрос:
как извлечь ссылки из переменной, если в переменной находится страница сайта
Отправлен: 02.01.2007, 23:51
Вопрос задал: Pessom (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Rok-set
Здравствуйте, Pessom!
Это делается при помощи регулярных выражений для поиска в строке.
int preg_match_all ( string pattern, string subject, array &matches [, int flags [, int offset]] )
Ищет в строке subject все совпадения с шаблоном pattern и помещает результат в массив matches в порядке, определяемом комбинацией флагов flags.
После нахождения первого соответствия последующие поиски будут осуществляться не с начала строки, а от конца последнего найденного вхождения.
Дополнительный параметр flags может комбинировать следующие значения (необходимо понимать, что использование PREG_PATTERN_ORDER одновременно с PREG_SET_ORDER бессмысленно):
PREG_PATTERN_ORDER
Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит массив полных вхождений шаблона, элемент $matches[1] содержит массив вхождений первой подмаски, и так далее.
PREG_SET_ORDER
Если этот флаг установлен, результат будет упорядочен следующим образом: элемент $matches[0] содержит первый набор вхождений, элемент $matches[1] содержит второй набор вхождений, и так далее.
PREG_OFFSET_CAPTURE
В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Данный флаг доступен в PHP 4.3.0 и выше.
В случае, если никакой флаг не используется, по умолчанию используется PREG_PATTERN_ORDER.
Поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска. Дополнительный параметр offset доступен, начиная с PHP 4.3.3.
Возвращает количество найденных вхождений шаблона (может быть нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки.
А вот одно из популярных выражений для поиска адресов URL:
/[-a-z0-9]+(.[-a-z0-9]+)*.(com|edu|info|[a-z][a-z])/i
есть, конечно, и более сложные и функциональные выражения, но это тема для
отдельного вопроса.
Думаю совместить всё вышесказанное в коде не составит особого руда ;)
--------- Есть то, чего вы не знаете, а есть то, о чём даже представить не можете! А оно всё равно есть....
Ответ отправил: Rok-set (статус: 8-ой класс)
Ответ отправлен: 03.01.2007, 04:35