直接替换好啦//$str = 文章的内容
$oldstr='<a href=/x_43b2c893>';
$encode='<a href="/x_43b2c893">';
$str = str_replace($oldstr,$encode,$str);
echo htmlspecialchars($str);
$oldstr='<a href=/x_43b2c893>';
$encode='<a href="/x_43b2c893">';
$str = str_replace($oldstr,$encode,$str);
echo htmlspecialchars($str);
$str='<a href=/x_43b2c893>';
var_dump((preg_replace('/<a href=/','<a href="',$str)));
$pattern = "/\/x_[a-z0-9]{8}/i";
$replacement = "\"\$0\"";
$str = preg_replace($pattern, $replacement, $str);
echo $str;
<a href=/x_43b2c893>
<a href=/x_43b21234>
<a href=/x_43baswq3>全部替换成
<a href="/x_43b2c893">
<a href="/x_43b21234">
<a href="/x_43baswq3">
$str='<a href=/x_43b2c893>
<a href=/x_43b21234>
<a href=/x_43baswq3>';
var_dump((preg_replace('/<a href=/','<a href="',$str)));你就不能去试试吗??
<a href=(.*?)> (如果有空格<a href=(.*?) >)
替换
试试以下的
<a hrdf=\"$1\">
如不行去掉\
$1,换成\1
替
<a href="$1">
测试可以
如有其他语言将$1换成\1
引号要转义
preg_replace('|<a href=(.*?)>|is','|<a href="\1">|',$str))
试试
<?php
$str='
<a href=/x_43b2c893> 无完整引号
<a href="/x_43b2c893" > 有完整引号<a href=/x_43b2c893 target=_blank> 包含其他已知属性 且 无完整引号
<a href=/x_43b2c893 target="_blank"> 包含其他已知属性 且 有完整引号<a href="/x_43b2c893" class=aLink > 包含其他未知属性 且 无完整引号
<a href="/x_43b2c893" class="aLink" > 包含其他未知属性 且 有整引号
';
echo preg_replace('/(href|target|[a-z])=([^\s&^>^"]+)/i','$1="$2"',$str);# 这里并没有考虑到的情况有
/**
* <a href=/x_43b2c893" > 单面引号
* <a href='/x_43b2c893' > 单引号
* 可以在清理完引号后进行上面的替换操作.
* ……
*/
?>
<?php
$str='
<a href=/x_43b2&c893> 无完整引号
<a href="/x_43b2c893" > 有完整引号<a href=/x_43b2c893 target=_blank> 包含其他已知属性 且 无完整引号
<a href=/x_43b2c893 target="_blank"> 包含其他已知属性 且 有完整引号<a href="/x_43b2c893" class=aLink > 包含其他未知属性 且 无完整引号
<a href="/x_43b2c893" class="aLink" > 包含其他未知属性 且 有整引号<a href=/x_43b2c893" class=aLink" > 包含其他未知属性 且 单面引号
<a href="/x_43b2c893 class=aLink" > 包含其他未知属性 且 单面引号
';
echo preg_replace('/(href|target|[a-z])=([\"\']*)([^>"\'\s]+)[\s]*([\"\']*)/i','$1="\\3" ',$str);
?>