获取其目录名称上包含空格的文件的HTML内容

时间:2012-10-23 16:17:57

标签: php curl

帮助,

如果目录/文件夹名称中包含空格,我在获取文件的html内容时遇到问题。

我正在使用CURL来获取html内容..以下是我访问以获取html代码的链接示例

http://dev24oct20part2.globalbizcloud.com/admin/content/module_templates/templates/products/all_prods/Product temP/index.html

正如您所看到的,目录中有一个包含我的index.html的空间,这会导致错误并禁止我抓取内容。

/Product temP/index.html

这是我的代码:

    $template = $this->mod_template_link.$this->module_category.'/'.$this->module_unique_key.'/'.$this->module_template.'/index.html';
    //value of this variable is the link above..

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $template);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $contents = curl_exec ($ch);
    curl_close ($ch);

    return $this->translate_template($contents);

如果文件夹名称中没有空格,则可以正常工作。

非常感谢任何建议或建议。

提前致谢。

2 个答案:

答案 0 :(得分:2)

你必须为你的情况对特殊字符(如空格)进行url编码,替换%20的空格,如下所示:

http://dev24oct20part2.globalbizcloud.com/admin/content/module_templates/templates/products/all_prods/Product%20temP/index.html

正确的解决方案是通过PHP urlencode()传递URL以使其转义以在cURL中使用。因此,请替换以下行:

curl_setopt($ch, CURLOPT_URL, $template);

这个:

curl_setopt($ch, CURLOPT_URL, urlencode($template) );

答案 1 :(得分:1)

尝试使用%20

填充空格
http://dev24oct20part2.globalbizcloud.com/admin/content/module_templates/templates/products/all_prods/Product%20temP/index.html