我正在尝试操纵一个字符串,以便<a href>
和<\a>
中的任何引号(“)被取出...对不起,如果它之前被问过,但我无法得到它工作!顺便说一下,我正在从一个表单中发布数据,然后操作字符串。这基本上是html,但它是一个字符串的形式,我想在图像和链接之类的东西上取出引号......事情是,我不想逃避引号,因为这会破坏链接...而且重点是html可以使用并且工作正常......但现在,有些东西会自动在里面创建第二组引号正常的引号,如下:<a href="\"http://www.example.com/\""></a>
示例输入为: <p><a href="http://www.example.com">example</a></p>
这是我回应时的表现: <p><a href=\"http://www.example.com\">example</a></p>
以下是我希望它的外观: <p><a href="http://www.example.com">example</a></p>
所以我实际上想要摆脱(/)我的坏......
以下如何使用它:
我正在使用富文本编辑器编写html,然后通过带有post方法的表单发送它,但它一直放入双引号...我注意到当我编辑RTE的源并取出所有引号时,链接工作...但我不能让我的用户进入源并每次都这样做,所以我需要一个自动完成它的解决方案......
答案 0 :(得分:1)
确定..所以你可以试试$result = stripslashes($string)
或者使用像
$result = preg_replace( '/\\\\(?=")/', '', $string )
或
$result = preg_replace( '/\\\\"/', '"', $string )
但在这种情况下更好的是$result = str_replace( '\\"', '"', $string )
编辑:这对我来说很好用
$input = '<p><a href=\"http://www.example.com\">example</a></p>';
echo htmlspecialchars($input) . '<br/>';
$output = preg_replace( '/\\\\(?=")/', '', $input );
echo htmlspecialchars($output) . '<br/>';
答案 1 :(得分:0)
我之前的回答有一些问题,但这应该有效。
$string='<a href="gf">ahdasd"asjda</a>';
function replacequotes($matches){
return $matches[1].str_replace('"','',$matches[2]).$matches[3];
}
echo preg_replace_callback('/(<a href=)(.+?)(<\/a>)/','replacequotes',$string);
答案 2 :(得分:0)
如果您想要替换双引号的所有实例而不管它们的位置如何,那么str_replace也可以这样做;
str_replace("\"", "", $string);
(反斜杠用于将引号读作非文字字符)
当然这种方法的缺点在于它是不分青红皂白的,但我想我会发布这个,因为有时你想要使用正则表达式,比如preg_match,有时你只想要替换所有的实例字符串中的子字符串。
答案 3 :(得分:0)