2016-04-26 77 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讓我有些困惑。 –