0

我需要在文本字符串中捕获自定义“标签”,重写并替换它。看起来像:

<mytag=http://url.com/file.php?some=variable&another=variable>

首先我需要从标签中捕获 url,然后用我的函数重写它,然后用新的 url 替换整个标签。任何人都可以帮助我如何捕捉和替换它吗?在文本中可以有更多带有各种 url 的标签。

4

2 回答 2

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>
于 2012-11-15T18:38:18.777 回答
0

那是微不足道的。你有足够的上下文和锚点。基本上使用preg_replaceor preg_repace_callback(对于更复杂的替换方案)的工作方式如下:

$src = preg_replace('~  <mytag=  (http://[^>]+)  >  ~smix', '<a href=$1>$1</a>', $src);

这里的空白是装饰性的。关键是[^>]不匹配太多,并将(URL)捕获为$1.

于 2012-11-15T18:40:53.900 回答