我有一个搜索计算机Windows目录的php文件。如果我有一个包含非英语字符的目录,如“ÖnderŞoğlopıpk”,则返回null。 我的Php文件是这样的:
$port = $_GET["port"];//Here is computer's port
$path = trim($_GET["path"]);//Here is the path which does not work
$path = str_replace(" ","+",$path);
$path = urlencode($path);
$suffix = $_GET["suffix"];//Here is suffix which I am searching
if($_GET){
$url='http://mylink.com?host=localhost&port='.$port.'&showerrorinxml=yes&link=proc_list?find_files___path='.$path.'___suffix='.$suffix.'';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
$xml = simplexml_load_string($data);
如果路径变量中有非英文字符,如“ŞĞışğI”,则返回null给我。如果是英语则没有问题。我可以搜索我想要的东西。 我是urlencoding它但它没有用。 我的网址似乎是名为“SeçpaYazılım登录”的目录:
http://mylink.com?host=localhost&port=44833&showerrorinxml=yes&link=proc_list?find_files___path=D%3A%2FSe%C3%A7pa%2BYaz%C4%B1l%C4%B1m%2BLogin%2F___suffix=.css
它似乎在浏览器上:
http://mylink.com?host=localhost&port=44833&showerrorinxml=yes&link=proc_list?find_files___path=D%3A%2FSeçpa%2BYazılım%2BLogin%2F___suffix=.css
有人对这个话题有所了解吗?
答案 0 :(得分:0)
检索后需要urldecode
输入:
$path = trim( urldecode( $_GET['path'] ) );
更新:好的,请仔细阅读您的问题。对我来说,好像你要对URL进行两次编码。第一次通过HTTP请求从浏览器发送,第二次在$path = urlencode( $path );