0

帮助,

如果文件的目录/文件夹名称中有空格,我在获取文件的 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);

如果文件夹名称中不存在空格,则可以正常工作。

任何意见或建议将不胜感激..

提前致谢。

4

2 回答 2

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) );
于 2012-10-23T16:21:57.467 回答
1

尝试用%20

http://dev24oct20part2.globalbizcloud.com/admin/content/module_templates/templates/products/all_prods/Product%20temP/index.html
于 2012-10-23T16:22:17.413 回答