PHP urldecode函数失效:无法解码URL编码文件内容
问题解决:urldecode()无法解码URL编码文件内容
问题场景
在Windows 10系统的XAMPP环境(Apache 2.4.56、PHP 8.2.4)中,尝试读取URL编码的showfile.rsp文件内容,调用PHP内置urldecode()函数解码后,%##格式的编码未转换为可读字符,输出与原文件内容一致,不符合预期。
错误原因
代码中误用了readfile()函数:该函数的返回值是文件的字节数,而非文件内容。这导致urldecode()实际处理的是数字(字节数),而非目标URL编码字符串,因此解码操作完全无效。
正确实现方案
使用file_get_contents()读取文件内容(该函数返回文件的字符串内容),再对其调用urldecode()即可完成解码:
// 读取文件内容并解码 $fileContent = file_get_contents('showfile.rsp'); $decodedContent = urldecode($fileContent); echo $decodedContent;
如果需要直接输出解码后的内容,也可以简化为:
echo urldecode(file_get_contents('showfile.rsp'));
内容的提问来源于stack exchange,提问作者Qazi Salman Ahmad
相关产品推荐
相关产品推荐

