php编码和解码字符串

时间:2017-06-22 21:36:37

标签: php mysql

我有一个应用程序,用户可以上传图像作为他们的头像。设置方式如下。有一个名为“Uploads”的文件夹,当用户选择一个图像时,它会上传并存储在那里并重命名为用户的用户名,然后数据库中的引用将引用该图像,因此字符串在数据库看起来像这样

“../ uploads / username.jpg” 我正在使用PHP的rawurlencode();函数来处理带有空格的用户名,例如“用户管理员”,所以当这个用户上传图片时,它会像这样存储在数据库中 ../ uploads / user%20admin.jpg 现在,当我想显示那个图像时,我正在使用rawurldecode();功能,但它只是不能正常工作,因为它以这种方式解码“上传/用户“admin.jpg 这是我的PHP来显示图像。

<?php 
echo '<td class="col-md-3">  
<input type="checkbox" name="check_list[]" value="' .$row2['buss_id'].'">' 
. '<img src=' . rawurldecode($row2['pic']) .'> '. $row2['username']; ?> </td> 

更清楚的是,这是在浏览器中解码字符串的方式

<img src="../uploads/user" admin.jpg>

感谢。

1 个答案:

答案 0 :(得分:0)

你缺少引号。这部分代码:

'<img src=' . rawurldecode($row2['pic']) .'> '

应该是这样的:

'<img src="' . rawurldecode($row2['pic']) .'"> '

您当前代码的问题在于它会发出如下内容:

<img src=../uploads/user admin>

浏览器将空格视为属性之间的分隔符,因此它以这种方式解释:

<img src="../uploads/user" admin>