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>";
СПАСИБО ЗА ПОМОЩЬ
ПРИМЕЧАНИЕ: я прошу прощения, если я использовал неправильные термины.
$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>
Вы можете использовать explode($tags, ' ', 2);, чтобы получить массив из двух элементов, первый из которых - первый тег (URL), а второй - все остальные теги, если вы точно знаете, что они всегда будут пробелами. разделены.
explode($tags, ' ', 2);