我想从我网站上的字符串中删除所有反斜杠。我不想使用strip_slashes(),因为我想保持正斜杠。
这是我正在尝试的代码:
echo str_replace(" \","","它是星期二!"); 我想在任何给定的字符串中找到反斜杠并将其删除。但是,这段代码无法正常工作。
错误:
语法错误,意外T_CONSTANT_ENCAPSED_STRING 我能做错什么?
答案 0 :(得分:2)
{{1}}
这将从标记中提取href元素,并在其上运行replace,然后用新的href元素替换旧的href元素。你可以用一个正则表达式做到这一点,但你必须尝试看看什么更有效。
我喜欢我发布的方法,因为正则表达式通常是后来试图弄清楚的婊子。
答案 1 :(得分:1)
您可以使用此解决方案:
$text = "
<a title=\"Link 01\" href=\"http://www.mywebsite.com.br/?id=121451781\">Link 01</a>
<a title=\"Link 10\" href=\"http://www.mywebsite.com.br/?v=1345fg6712&v2=11gdg123\">Link 10</a>
";
preg_match_all('#[a-z0-9]+=(?<params>[0-9a-z]+)">#u', $text, $matches);
foreach ($matches['params'] as $oldParam) {
$newParam = str_replace('1', '*',$oldParam);
$text = str_replace($oldParam, $newParam, $text);
}
echo $text;
<强>结果:强>
<a title="Link 01" href="http://www.mywebsite.com.br/?id=*2*45*78*">Link 01</a>
<a title="Link 10" href="http://www.mywebsite.com.br/?v=1345fg6712&v2=**gdg*23">Link 10</a>
答案 2 :(得分:-1)
<html>
<body>
<ul>
<li><a title='Link 01' href='http://www.mywebsite.com.br/?id=*2*45*78*'>Link 01</a></li>
<li><a title='Link 02' href='http://www.mywebsite.com.br/?id=*2*45****'>Link 02</a></li>
<li><a title='Link 03' href='http://www.mywebsite.com.br/?id=*23345*78*'>Link 03</a></li>
<li><a title='Link 01' href='http://www.mywebsite.com.br/?id=235*78'>Link 04</a></li>
</ul>
</body>
</html>
<?php
$a = file_get_contents('test.php');
$newdoc= '';
foreach(preg_split("/((\r?\n)|(\r\n?))/", $a) as $line){
$start = strpos($line,"id=")+3;
$end = strpos($line,">Link")-1;
$len= $end-$start;
$line = str_replace(substr($line,$start,$len),str_replace("*", "*", substr($line,$start,$len)),$line);
$newdoc .= $line."\r\n";
}
file_put_contents('test.php',$newdoc);
?>
运行此代码,它将根据需要更改当前文档表达式。输出 - &gt;
之前:http://prntscr.com/hcg4y4之后:http://prntscr.com/hcg52i
如果这是你需要的,请给答案评分。