我使用"Holder – 2pcs"
函数从我的Wordpress帖子标题中获得了这个字符串get_the_title()
,然后我使用str_replace
替换了“ –”字符,但没有运气!
str_replace("–","-","Holder – 2pcs");
任何帮助表示赞赏!
(回复评论)
我不得不将文本从$title1=get_the_title();
保存到.txt
文件,我注意到–在txt文件中另存为–
...然后我替换了str_replace("–","-","Holder – 2pcs")
而且有效!问题是,在我的wordpress数据库中,标题包含应有的-char,但是当我在代码中使用wordpress的get_the_title();
函数检索标题时,得到的-char为–最终为{{1} }我不知道为什么–
导致此问题!
有什么想法吗?
答案 0 :(得分:0)
您共享的does work代码:
var_dump(str_replace("–","-","Holder – 2pcs"));
string(13) "Holder - 2pcs"
否则,您实际上正在运行其他操作。输入数据很可能包含空格或HTML实体,并且正在通过浏览器眼镜查看。
尝试进一步检查您的输入数据,例如:
header('Content-Type', 'text/plain');
var_dump("Holder – 2pcs", bin2hex("Holder – 2pcs"));
string(15) "Holder – 2pcs" string(30) "486f6c64657220e280932032706373"
答案 1 :(得分:0)
您的问题是由于您的“-”字符是其他与看起来相同的字符引起的。
确保从MySQL到PHP到输入文本,所有内容均为using the same Character set。
$n
确保您转换的是原始字符串,而不是HTML编码的输出
$title1 = iconv(mb_detect_encoding(get_the_title(), mb_detect_order(), true), "UTF-8", get_the_title());
按照最初的尝试运行$title2 = html_entity_decode($title1, ENT_NOQUOTES | ENT_HTML5, "UTF-8");
函数。如果存在一系列可能的“破折号”字符,则可以构建一个数组:
str_replace()