PHP:PHP中的str_replace,删除字符串中的额外符号

时间:2016-04-26 02:05:02

标签: php rss str-replace feeds

目前我想从我的postgreSQL数据库传递链接到我的RSS提要解析器。

到目前为止,我能够将字符串读取的单个字符串数组转换为:

{"(\"(http://www.delawareriverkeeper.org/rss.xml)\")","(\"(http://www.littoralsociety.org/index.php?format=feed&type=rss)\")","(\"(\"\"http://www.nj.gov/dep/newsrel/newsrel.rss \"\")\")"}

只有一个字符串。

我们希望删除额外的parantheses,引号,反斜杠和括号,使其显示为" http://www.delawareriverkeeper.org/rss.xml"," http://www.littoralsociety.org/index.php?format=feed&type=rss"等等。

然后我们计划将它拆分成另一个数组以传递给我们的解析器。

我认为str_replace是我正在寻找的,但我实际上无法弄清楚要删除额外引号的内容。

2 个答案:

答案 0 :(得分:0)

这似乎是微不足道的。你试过吗?

<?php

$raw = '{"(\"(http://www.delawareriverkeeper.org/rss.xml)\")","(\"(http://www.littoralsociety.org/index.php?format=feed&type=rss)\")","(\"(\"\"http://www.nj.gov/dep/newsrel/newsrel.rss \"\")\")"}';

$clean = str_replace('\"', '', $raw);
$clean = str_replace(')', '', $clean);
$clean = str_replace('(', '', $clean);
$clean = str_replace('}', '', $clean);
$clean = str_replace('{', '', $clean);
$clean = str_replace(' ', '', $clean);

echo $clean;
  

http://www.delawareriverkeeper.org/rss.xml”, “http://www.littoralsociety.org/index.php?format=feed&type=rss”, “http://www.nj.gov/dep/newsrel/newsrel.rss

答案 1 :(得分:0)

以下正则表达式将任何网址与数组匹配,因此无需&#34; 将其拆分为另一个数组以传递到我们的解析器 &#34;

<?php
$subject= '{"(\"(http://www.delawareriverkeeper.org/rss.xml)\")","(\"(http://www.littoralsociety.org/index.php?format=feed&type=rss)\")","(\"(\"\"http://www.nj.gov/dep/newsrel/newsrel.rss \"\")\")"}';  
preg_match_all('/\b(?:(?:https?):\/\/|www\.)[-A-Z0-9+&@#\/%?=~_|$!:,.;]*[-A-Z0-9+&@#\/%=~_|$]/ix', $subject, $result, PREG_PATTERN_ORDER);
print_r($result[0])

<强>输出:

Array
(
    [0] => http://www.delawareriverkeeper.org/rss.xml
    [1] => http://www.littoralsociety.org/index.php?format=feed&type=rss
    [2] => http://www.nj.gov/dep/newsrel/newsrel.rss
)

Ideone Demo