1

这是来源:

<item>
  <title>Quarterly Report ( Third Quarter 2013 )</title>
  <link>http://www.example.com/reports/Q3 2013_Final.pdf</link>
  <pubDate>24 Oct 2013 00:00:00 +0500</pubDate>
</item>

我只需要%20在 URL 中用 , 替换空格。

我该怎么做呢?

编辑:源数据来自另一个我无法访问的网站,我不想解析 XML 只是为了替换空格字符。

4

2 回答 2

1

从您的评论中假设您正在使用 php.ini。

这个如何

function FixSpace($match)
{
    $out  = $match[1];                          // opening tag
    $out .= str_replace(' ', "%20", $match[2]); // url
    $out .= $match[3];                          // closing tag

    return $out;
}

$input = preg_replace_callback("~(<link>)(.*?)(</link>)~", "FixSpace", $input);
于 2013-11-03T11:51:41.963 回答
0

首先使用正则表达式“.*</link>”选择链接标签和内容,然后用%20替换空格即\s

我已经使用 ruby​​ 语言编写了示例。

str= "<item>

季度报告(2013 年第三季度) http://www.example.com/reports/Q3 2013_Final.pdf 2013 年 10 月 24 日 00:00:00 +0500 "str.scan(/.*</link>/).first. gsub(/\s/,'%20')

于 2013-11-03T12:00:32.223 回答