我需要在文本字符串中捕获自定义“标签”,重写并替换它。看起来像:
<mytag=http://url.com/file.php?some=variable&another=variable>
首先我需要从标签中捕获 url,然后用我的函数重写它,然后用新的 url 替换整个标签。任何人都可以帮助我如何捕捉和替换它吗?在文本中可以有更多带有各种 url 的标签。
你可以试试这个:
$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>
那是微不足道的。你有足够的上下文和锚点。基本上使用preg_replace
or preg_repace_callback
(对于更复杂的替换方案)的工作方式如下:
$src = preg_replace('~ <mytag= (http://[^>]+) > ~smix', '<a href=$1>$1</a>', $src);
这里的空白是装饰性的。关键是[^>]
不匹配太多,并将(
URL)
捕获为$1
.