2016-04-26 79 views
1

目前我想从我的postgreSQL数据库传递链接到我的RSS提要分析器。PHP:str_replace在PHP中删除字符串中的多余符号

到目前为止,我是能够转换为一个字符串数组的字符串读起来像:

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

只有一个字符串。

我们希望删除多余的缺口,引号,反斜杠和括号,使其类似于“http://www.delawareriverkeeper.org/rss.xml”,“http://www.littoralsociety.org/index.php?format=feed&type=rss”等。

然后,我们计划将其拆分到另一个数组中传递给我们的解析器。

我认为str_replace是我正在寻找的东西,但是我实际上很难搞清楚用什么来删除多余的引号。

+0

我猜你不需要清洗和放入数组,可以实现一步到位与正则表达式相同。 –

回答

0

下面的正则表达式的任何URL匹配到一个数组,所以没有必要” 分裂是到另一个阵列传入我们的解析器

<?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]) 

OUTPUT:

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

+0

我们注意到Jeff的方法有错误。发生了什么就是将它传递给我们的XML解析器,我们得到了一个非对象的错误。我想所有的清理,然后我们迭代它来修剪双引号引起的错误。但是你的正则表达式完美无缺。非常感谢。刚刚尝试完成这一点。 –

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

+0

谢谢你的帮助。今晚急于完成这件事解释了关于这个问题的乏味的试验和错误。我知道如何在java中做到这一点,但是php让我有些困惑。 –