PHP urldecode 在我的情况下不起作用


PHP urldecode doesn't work in my case

My PHP

echo '<div class="coverImg" style="background=url("'. urldecode($item) . '") no-repeat center center">'; } ?>

输出(多姆)

 <div class="coverImg" style="background=url(" https:="" serembangirl.files.wordpress.com="" 2014="" 11="" 20141005-071447.jpg?w="300&amp;h=400&quot;)" no-repeat="" center="" center"=""><a href="https://serembangirl.wordpress.com/2014/11/14/sometimes-i-forget/">

我错过了什么吗?

听起来你

实际上不需要使用urldecode(),因为$item一开始就没有百分比编码。您应该使用 htmlspecialchars ,以防它包含需要编码才能在 HTML 中使用的字符。

另外,您不应该将"放在url(...)内。第一个引号与style="开头的引号匹配,因此它结束了值。

echo '<div class="coverImg" style="background=url('. htmlspecialchars($item) . ') no-repeat center center">'; } ?>

我想URL是正确的,问题出在添加表示为&#038;的第二个参数&,因此您可以使用html_entity_decode来解决此问题:

echo '<div class="coverImg" style="background=url("'. html_entity_decode($item) . '") no-repeat center center">'; } ?>

或者您可以组合这两个功能:

echo '<div class="coverImg" style="background=url("'. urldecode(html_entity_decode($item)) . '") no-repeat center center">'; } ?>