PHP : str_replace in PHP 删除字符串中的多余符号

PHP : str_replace in PHP with removing extra symbols in string

目前我想将链接从我的 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 \"\")\")"}

只有一串。

我们要删除多余的括号、引号、反斜杠和方括号,使其读起来像“http://www.delawareriverkeeper.org/rss.xml", "http://www.littoralsociety.org/index.php?format=feed&type=rss”等。

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

我认为 str_replace 是我要找的东西,但我在实际弄清楚如何删除多余的引号时遇到了麻烦。

这看起来微不足道。你试过了吗?

<?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"

以下正则表达式将任何 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])

输出:

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