代码
$s1clean = 'ALIEN - FILM - MOVIE – PSP – Sony - Boxed & Complete';
echo $s1clean;
echo "<br><br>";
// Remove dash
$s1clean = str_replace('-', '', $s1clean);
// Remove em dash
$em_dash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');
$s1clean = str_replace($em_dash, '', $s1clean);
$em_dash2 = html_entity_decode('—', ENT_COMPAT, 'UTF-8');
$s1clean = str_replace($em_dash2, '', $s1clean);
$s1clean = str_replace('\u2014', '', $s1clean);
echo $s1clean;
echo "<br><br>";
输出
“ALIEN FILM MOVIE - PSP - 索尼盒装和完整”
如何删除此字符?
答案 0 :(得分:10)
这指定了可能的删除数组
$s1clean = 'ALIEN - FILM - MOVIE – PSP – Sony - Boxed & Complete';
$s1clean = str_replace(["-", "–"], '', $s1clean);
echo $s1clean;
跑步时,
<强>输出继电器强>
ALIEN FILM MOVIE PSP Sony Boxed&amp;完整
我只是简单地复制了奇怪的破折号并添加了实际破折号的可能性并且它有效。
阅读材料
答案 1 :(得分:4)
上述内容对我没有用,但确实如此:
$s1clean = str_replace(chr(151), '', $s1clean); // emdash
注意:使用endash
$s1clean = str_replace(chr(150), '', $s1clean); // endash
来自周杰伦:http://php.net/manual/en/function.str-replace.php#102465
答案 2 :(得分:2)
你的破折号是长短划线–
和超短减(短划线)-
的混合 - 如果您以不同的字体查看代码和标题,您将看到差异。
您的代码在开始时会删除2个短破折号,以及稍后删除的短破折号。
添加它会修复它(这是一个不同的破折号,即使它看起来不像一个):
$s1clean = str_replace('–', '', $s1clean);
修改强>
或者复制2013年代码行,但使用hyphen-minus's code 002D
代替2013:
$em_dash = html_entity_decode('-', ENT_COMPAT, 'UTF-8');
如果以固定宽度字体编辑,则两者看起来都相同,但不是。
答案 3 :(得分:1)
这个适用于我
$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD";
$title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title);
$title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title);