PHP通过编码&符打破URL

时间:2014-02-22 01:03:15

标签: php url encode

我正在调试此代码要在图片中显示的网站:

<a href="<?=$auction_link;?>"><img src="<? echo ((!empty($main_image)) ? 'thumbnail.php?pic=' . $main_image . '&w=' . $layout['hpfeat_width'] . '&sq=Y' : 'themes/' . $setts['default_theme'] . '/img/system/noimg.gif');?>" border="0" alt="<?=$item_details[$counter]['name'];?>"></a>

显示没有图像,显然是因为href值正在转换为:

thumbnail.php?pic=uplimg/img_A_100430_b93204949c62ffba35eb62f1b94b93c4.jpg&amp;w=0&amp;sq=Y"

应该是:

thumbnail.php?pic=uplimg/img_A_100430_b93204949c62ffba35eb62f1b94b93c4.jpg&w=250&sq=Y

请注意&amp;所在的&amp;应该在两个地方。反正有没有停止编码?

谢谢 - 乔

3 个答案:

答案 0 :(得分:1)

尝试在PHP源代码中使用&amp;。顺便说一句,PHP不对&符号进行编码。

/*...*/ $main_image . '&amp;w=' . $layout['hpfeat_width'] . '&amp;sq=Y' /*...*/

答案 1 :(得分:0)

您正在编码HTML而不是URLS。

如果您希望&符号是数据而不是控件 - 也就是说,如果您希望将&符号作为参数名称或值的一部分传递给服务器,而不是作为键值对之间的分隔符,则要使用%xx编码,其中xx是要编码的字符的十六进制值。

如果您根本不想编码,则需要找到正在进行编码的代码并将其删除(魔法没有任何反应)。

答案 2 :(得分:0)

好吧,看起来有一个不同的问题。变量$layout['hpfeat_width']似乎没有正确转换。当我用硬值替换它时,它可以工作。谢谢大家花点时间看看这个!

最好 - 乔