Как найти URL в строке, ближайшей к подстроке (после использования stripos)?(PHP) - PullRequest
0 голосов
/ 04 февраля 2011

Я работаю со строкой html и пытаюсь найти ближайший URL в позиции подстроки.

if (stripos($theemailmessage,'substring') !== FALSE ) 
{
    $indicatornumber = '1';
}

Таким образом, stripos () должен дать мне положение этой подстроки внутри строки.Как бы я начал искать значения в URL отсюда?Я предполагаю, что это будет что-то пересекающее позиции строки, ища http://, но я действительно не уверен, какую функцию я должен использовать.

В документе много URL-адресов, которые я ищу, я ищу ближайший к позиции строки.На самом деле, я хочу выполнить поиск, чтобы увидеть, находится ли строка внутри тега привязки, но я решил, что начну с изучения того, как искать ближайший URL-адрес, а затем уточню.

Ответы [ 3 ]

0 голосов
/ 04 февраля 2011

у вас есть несколько вариантов для реализации этого.используйте функцию preg_replace или используйте функцию parse_url.

$tempText = "hello.. how are you?? are you keeping well?? please checkout this url http://www.youtube.com/watch?v=ehuwoGVLyhg&feature=topvideos";

print_r(parse_url($tempText,PHP_URL_PATH));
0 голосов
/ 04 февраля 2011

Удачи в поиске регулярного выражения, соответствующего URL-адресам, но предположим, что оно у вас есть.

Тогда

preg_match_all($url_regexp, $source, $matches, PREG_OFFSET_CAPTURE);

Посмотрите на $matches, и у вас будет каждый URL плюс его позиция. Выполните итерацию по ним, чтобы найти ближайшую к вашей позиции подстроки. Убедитесь, что вы учитываете длину совпадений и свою подстроку.

0 голосов
/ 04 февраля 2011

Как то так?

preg_match ( '/ HTTP \: [. A-Za-Z0-9 -].? \ / \ / + [A-Za-Z] {2,3} (\ / \ S *) /', $ str, $ url);

echo $ url [0];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...