我真的不知道这一切,我认为是正则表达式。这就是我真正想做的事情。我有这个HTML标签。
<link rel="alternate" type="text/html" href="frenchnew.html" hreflang="fr" lang="fr" title="title">
我想把这整个刺痛替换成:
<link rel="alternate" type="text/html" href="new.html" hreflang="ca" lang="ca" title="new">
我正在使用str_replace()
方法。但问题是,如果搜索字符串在属性之间有空格,如下所示:type="text/html"<spance1><spance2><spance3>href="frenchnew.html"
在查找字符串时如何匹配?使用正则表达式?我不知道该怎么做?请帮帮我...
答案 0 :(得分:1)
您可以使用替换地图执行'尖头'替换,例如:
$new_link = str_replace(
array('="frenchnew.html"', '="fr"', ...),
array('="new.html"', '="ca"', ...)
);
......所以间距根本不重要,因为它们不会改变。
答案 1 :(得分:0)
这是一个正则表达式,无论属性之间的空格数是多少,都应该适用于您的示例。
$original_string = '<link rel="alternate" type="text/html" href="frenchnew.html" hreflang="fr" lang="fr" title="title">';
$pattern = '<link\s+rel="alternate"\s+type="text\/html"\s+href="frenchnew\.html"\s+hreflang="fr"\s+lang="fr"\s+title="title">';
$replacement = '<link rel="alternate" type="text/html" href="new.html" hreflang="ca" lang="ca" title="new">';
$new_string = preg_replace("/$pattern/", $replacement, $original_string); // Contains your new string