2

如何使用preg_matchor将目标空白添加到锚标记以在新窗口中打开preg_replace

$contentss = file_get_contents("http://www.ncbi.nlm.nih.gov/pubmed?LinkName=pubmed_pubmed&from_uid=18032633" ); 

preg_match('/<div class="rprt">(.*)<\/div>/',$contentss,$matches);  

$patterns = '/\/pubmed/';   

$replacements = 'http://ncbi.nlm.nih.gov/pubmed';   

$getreplacements = ( preg_replace($patterns, $replacements, $matches)); 

echo $getreplacements[0];
4

1 回答 1

0

无需预匹配/替换使用str_replace()

str_replace('<a', '<a target="_blank" ', $str);

您可以使用 preg_match 检查 a 是否已经具有目标属性

if(preg_match('/<a.*?target=[^>]*?>/', $str))

并决定接下来要做什么,如果要替换此标记,请使用 preg_replace 或 str_replace。您还可以决定,如果它确实有此标签,则不进行替换。由你决定。

$str是要替换/检查的字符串。

要在存在时用空白替换目标,您可以使用

preg_replace('/<a.*?target="([^"]?)"[^>]*?>/', 'blank', $str)
于 2013-06-07T07:45:43.473 回答