我正在从数据库中获取一个字符串,它可能是像String's Title
这样的内容,然而我需要将'
替换为'
,以便我可以将该字符串传递给外部API。我已经尝试了各种转义字符串的方法来使用str_replace()
,但都没有成功。
我正在从数据库中获取一个字符串,它可能是像String's Title
这样的内容,然而我需要将'
替换为'
,以便我可以将该字符串传递给外部API。我已经尝试了各种转义字符串的方法来使用str_replace()
,但都没有成功。
$stdin = mb_str_replace('’', '\'', $stdin);
这里有一个实现mb_str_replace()
函数的链接:http://www.php.net/manual/en/ref.mbstring.php#107631
我的意思是这个:
<?php
function mb_str_replace($needle, $replacement, $haystack) {
return implode($replacement, mb_split($needle, $haystack));
}
echo mb_str_replace('’', "'", "String’s Title");
试试这个
$s = "String’s Title";
$h = str_replace("’","'",$s);
echo $h;
也可以尝试使用 preg_replace
echo preg_replace('/\’/',"'","String’s Title");
我刚刚测试了这个:
echo str_replace('’', "'", $cardnametitle);
//Outputs: String's Title
编辑:我相信您的数据库条目已经进行了 htmlentities
处理。
注意:尽管它解决了您的问题,但我相信应该有更好的方法来解决它。
str_replace('’', ''', "String’s Title");
。因此,根据提供的信息,这大概是最好的答案。 - Adi’
这样的字符被存储在数据库中像 ’
,这也可能是编码问题,但我没有足够的经验来确定。 - Adi我不知道为什么str_replace()
对你不起作用。
我感觉你没有以正确的方式尝试它。
请参考LIVE DEMO
<?php
$str = "String’s Title";
echo str_replace('’', '\'', $str) . "\n";
echo str_replace("’", "'", $str);
?>
String's Title
String's Title
您可能需要尝试将标题设置为
header('Content-Type: text/html; charset=utf-8');
我遇到了一个类似的问题,尝试将撇号替换为下划线... 最后我不得不写下这段代码(这是用于WordPress网站):
$replace = array(",","'","’"," ","’","–");
$downloadTitle = str_replace( $replace,"_",get_the_title($gallery_id));
我自己也是 PHP 的新手,意识到这段代码相当丑陋,但它对我起作用。我意识到“'”是真正需要考虑的原因。
str_replace(utf8_encode('’'), "'", $str)
吗?这些字符串的编码分别是什么? - Ry-preg_replace("’","'",$string);
- Hans Z