我有span标签的字符串。我需要删除所有内部span class =" reference"标签。我使用以下代码删除字符串部分。字符串部分中的部分数据代码可能有所不同。
$string = 'Some text <span class="reference" data-code="Z22">Data code</span>';
$pattern = "|(?<=<span class=\"reference\" data-code=\"Z22\">)(.*?)(?=<\/span>)|";
$replace = '<a href=""> replaced </a>';
$matches = array();
preg_match_all($pattern, $string, $matches);
foreach ($matches[0] as $value) {
$string = str_replace($value, $replace, $string);
}
echo $ string;
如果data-code =&#34;将为此脚本设置$ pattern,将是变量&#34;
答案 0 :(得分:0)
data-code
置于正面后方(?<=
。如果要创建值变量,可以阅读有关Variable-Width Lookbehind vs. Infinite-Width Lookbehind的答案。
您可能会使用像PHP Simple HTML DOM Parser
这样的库并修改您的HTML。
例如:
include_once ("simple_html_dom.php");
$data = <<<DATA
Some text <span class="reference" data-code="Z22">Data code</span>
DATA;
$html = str_get_html($data);
$ret = $html->find("span[class=reference]");
foreach ($ret as $node) {
$node->innertext = '';
}
echo $html->save();
那会给你:
Some text <span class="reference" data-code="Z22"></span>