我猜测&和;搞乱了我的搜索。当我搜索mdash它找到它但当然不会取代&要么 ;围绕它。
这是我尝试过的,我觉得应该有用(我也试过了很多其他的东西,但是......):
$description = "there. — with David";
$description = preg_replace("/\&mdash\;/", "—", $description);
我用Google搜索并搜索无效,所以现在我只是把头发拉出来......
谢谢!
加入:
我从网址获得$ description:?description = clay%252520%252526mdash%25253B%252520with%252520Veronica
$description = $_GET["description"];
$description=rawurldecode($description);
$description=rawurldecode($description);
$description=htmlentities($description);
$description=stripslashes($description);
$description = preg_replace("/\&mdash\;/", "—", $description);
echo $decription;
生产: 粘土和MDASH;与Veronica (没有''之间& mdash),因为它在这里转换为mdash
答案 0 :(得分:2)
您不应使用preg_replace
替换常量字符串。只需使用str_replace
代替。
$description = str_replace("—","—", $description);
答案 1 :(得分:1)
你的&实际上是html实体&
所以你需要替换
$description =str_replace("—", "—", $description);
html_entity_decode()是另一种方法
答案 2 :(得分:0)
tim@roflcopter /tmp $ cat >blah.php
<?php
$description = "there. &MDASH; with David";
$description = preg_replace("/\&mdash\;/i", "—", $description);
echo $description;
tim@roflcopter /tmp $ php blah.php
there. — with David
看起来它有效,但是如果你打算使用preg_replace,你可能想要做一个不区分大小写的替换......这可能是你的搜索破坏问题。