PHP Strip строка первого URL и результатов отчета - PullRequest
0 голосов
/ 15 января 2010
Russel Peter video: <a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw">www.youtube.com/watch?v=2bP9tRhJRTw</a> russel peters video blah blah. Turtles: <a href="http://turtles.com">turtles.com</a>

У меня есть строка, которая содержит текст и теги с вложенными URL, как в примере выше.

Я хочу удалить ТОЛЬКО первый найденный тег

<a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw">www.youtube.com/watch?v=2bP9tRhJRTw</a>

и с этого уберите URL внутри href = "".

Но ... я также хочу иметь возможность хранить текст вокруг извлеченного тега.

Я ищу что-то вроде этого как конечный результат после всего вскрытия:

$originalstring = "Russel Peter video: <a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw">www.youtube.com/watch?v=2bP9tRhJRTw</a> russel peters video blah blah. Turtles: <a href="http://turtles.com">turtles.com</a>";


$preurl = "Russel Peter video: ";

$atag = "<a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw">www.youtube.com/watch?v=2bP9tRhJRTw</a>";

$url = "http://www.youtube.com/watch?v=2bP9tRhJRTw";

$afterurl = " russel peters video blah blah. Turtles: <a href="http://turtles.com">turtles.com</a>";

СПАСИБО ЗА ПОМОЩЬ

ПРИМЕЧАНИЕ: я прошу прощения, если я использовал неправильные термины.

Ответы [ 2 ]

2 голосов
/ 15 января 2010
$orgstring = 'Russel Peter video: <a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw">www.youtube.com/watch?v=2bP9tRhJRTw</a> russel peters video blah blah. Turtles: <a href="http://turtles.com">turtles.com</a>';
$s = explode(":",$orgstring,2);
$preurl = $s[0];
$href= explode('href="',$s[1]);
$url=preg_replace("/\">.*/","",$href[1]);
$atag = preg_replace("/\">.*/","",$s[1]);
$after=explode("</a>",$orgstring,2);
$afterurl=$after[1];
print "\$preurl: $preurl\n";
print "\$url: $url\n";
print "\$atag: $atag\n";
print "\$afterurl: $afterurl\n";

выход

$ php test.php
$preurl: Russel Peter video
$url: http://www.youtube.com/watch?v=2bP9tRhJRTw
$atag:  <a rel="nofollow" href="http://www.youtube.com/watch?v=2bP9tRhJRTw
$afterurl:  russel peters video blah blah. Turtles: <a href="http://turtles.com">turtles.com</a>
0 голосов
/ 15 января 2010

Вы можете использовать explode($tags, ' ', 2);, чтобы получить массив из двух элементов, первый из которых - первый тег (URL), а второй - все остальные теги, если вы точно знаете, что они всегда будут пробелами. разделены.

...