首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将XML中的URL特殊字符传递给curl

将XML中的URL特殊字符传递给curl
EN

Stack Overflow用户
提问于 2013-01-21 22:35:24
回答 1查看 2K关注 0票数 1

我有一个带有url变量的XML文件,其中包含特殊字符,如&、=等。

我有两个问题:

答:由于XML中不允许使用特殊字符,我应该如何输入URL?我是否应该对url进行编码,然后放入XML文件?

假设我对url进行了编码,并将其放入XML文件中,然后读入php脚本。

代码语言:javascript
复制
$fxml = simplexml_load_file("mylist.xml");
$fxml -> getName();

foreach($fxml->children() as $mylist)
    {
        $url = $mylist -> url;
        $url = urldecode(url);
        echo $url;

        $feed = curl_init( $url );
        curl_setopt($feed, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($feed, CURLOPT_HEADER, 0);
        $xml = simplexml_load_string(curl_exec($feed));

        curl_close($feed);
        //---------------------
        //---------------------
 }

以下是示例XML文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
    <feed>
        <mylist>
            <name>                                                                                                                                                                                    
             SISC                                                                                                                                                                                    
            </name>
            <url>                                                                                                                                                                                     
             http://epubs.siam.org/action/showFeed?ui=0&amp;mi=3chvf9&amp;ai=s0&amp;jc=sjnaam&amp;type=etoc&amp;feed=rss                                                                               
            </url>
        </mylist>
    </feed>

请注意,我已经替换了编码形式的URL,其中original &被它的代码替换。我也试着不使用urldecode,但我只正确地得到了echo $url。

如果我将url复制粘贴到curl_init($url )中的单引号下,一切都会正常工作。

但是,当我对url进行编码并将其放入XML中,再解码回来并将其放入curl_init($url )中时,它不起作用。

当我回显解码的$url (见上),然后我得到正确的url列表显示。我做错了什么?我读了一些密切相关的文章,但没能解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-21 22:41:53

为了举例,让我们使用&

如果您想在URL的数据中包含& (而不是指示新查询字符串键/键对的开始)。然后,在将其添加到URL之前,您需要对其进行URL编码(作为%26)。

如果您希望在XML文档的数据中包含& (例如,如果数据是带有查询字符串的URL ),则需要对其进行XML编码(作为&amp;)。您应该使用XML库(而不是字符串重击或模板)来构造XML,该库将为您处理它。

在将XML用作之前,您不应该对从XML中取出的数据进行 urldecode

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14440886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档