我需要在文本字符串中捕获自定义“标记”,重写并替换它。 它看起来像:
<mytag=http://url.com/file.php?some=variable&another=variable>
首先我需要从tag中捕获url,然后用我的函数重写它,然后用new url替换整个标记。任何人都可以帮助我如何捕捉和替换它?在文本中可以有更多带有各种网址的标签。
答案 0 :(得分:0)
你可以试试这个:
$my_tag = "<mytag=http://url.com/file.php?some=variable&another=variable>";
preg_match( "/<mytag=(.*)>/", $my_tag, $matches );
$new_tag = str_replace( $matches[1], "http://newurl.com", $my_tag);
$new_tag
变量将以下列结果:
<mytag=http://newurl.com>
答案 1 :(得分:0)
那是微不足道的。你有足够的背景和锚点。基本上使用preg_replace
或preg_repace_callback
(对于更复杂的替换方案)的工作原理如下:
$src = preg_replace('~ <mytag= (http://[^>]+) > ~smix', '<a href=$1>$1</a>', $src);
这里的空白是装饰性的。至关重要的是[^>]
不匹配,(
和)
用于将网址捕获为$1
。