PHP urldecode在我的案例中不起作用

时间:2014-12-29 09:26:53

标签: php

我的PHP

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

输出(DOM)

 <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/">

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

听起来您实际上不需要使用urldecode(),因为$item首先没有进行百分比编码。您应该使用htmlspecialchars,以防它包含需要编码以便在HTML中使用的字符。

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

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

答案 1 :(得分:0)

我猜网址是正确的,问题出在&添加第二个参数,表示为&#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">'; } ?>