2013-11-09 35 views
-1

我使用的preg_match()來檢查從XML Feed中的字符串(如:$ RESP =使用simplexml_load_file($ API)),其返回的向上1000個項目,並與的preg_match我已經提取了存儲在$匹配中的每個項目的一些數據,但我不知道如何利用preg_match存儲在$匹配中的數據。是怎樣煉成的preg_match陣列的數據有用的在屏幕上

這是我得到的和我所擁有的試過。

注意:我有print_r($ matches);只是讓我可以在修改preg模式的同時看到結果。

$matches; 

     preg_match('/(?<=\s|^)[a-zA-Z]{5,19} ?-?\d\d\d\d\d\d\d\d?*(?=\s|$)/', $Apples, $matches); 

      print_r($matches); 

/*Note: $matches returns an array as such: Array ([0] => Stringdata) Array ([0] => moreStringdata) Array ([0] => stillmoreStringData) Array ([0] => evenmoreStringData) Array ([0] => moreStringDataStill)... and I'm just wanting to use array[0] from each in the $results string which is output to the screen */ 

    $results.= "<div class='MyClass'><a href=\"$link\"><img src=\"$linktopicture\"></a><a href=\"$linktopageaboutapples\">$matches</a></div>"; 

我還試圖$匹配(),$匹配[]和$比賽[0] $結果字符串,但沒有任何作品,因爲我不知道很多關於使用數組我認爲我會問所以如果任何人不介意讓我直接與可能是非常元素的東西,我會最感激,我先謝謝你們。

+0

「$ matches」的內容是什麼? –

+0

爲什麼是DownVote? –

+0

請在代碼示例中添加$ Pattern的定義(並更正錯字)並將print_r($ matches)的輸出添加到問題中。 – Bobulous

回答

0

請務必閱讀preg_match doc page瞭解功能的工作方式。

首先,檢查以查看是否的preg_match返回1(這意味着在$Apples的值不匹配模式)或0(這意味着$Apples不匹配圖案)或FALSE(這意味着發生了錯誤)。

假設1返回,然後$比賽[0]將包含$蘋果串模式匹配的整個部分。如果您有捕獲組,則匹配的第一個捕獲組中的部分將在$ matches [1]中找到,在$ matches [2]中則會找到第二個,依此類推。

如果您不能共享您的正則表達式這是不可能的,看看你的模式是否包含任何捕捉組,讓我們用這個例子:

preg_match("/key:([A-Z]+);value:([0-9]+)/", "key:ERRORCODE;value:500", $matches); 

現在$matches[0]應該包含「鍵:ERRORCODE;價值: 500「,因爲整個字符串與模式匹配,並且$matches[1]應該包含」ERRORCODE「,並且$matches[2]應該包含」500「,因爲這些部分適合完整模式的捕獲組中的模式。

+0

嗨再次@Arkanon,Iv'e閱讀你所提供的文件的preg_match(之前,您提供的話),我仍然不明白了很多。很抱歉沒有分享我的模式。我將編輯我的第一個問題,使用模式SIMILAR來解釋我正在提取的內容,但是,我不知道:「key:ERRORCODE; value:500」給我一秒更新我的初始問題。 –

+0

我更新了模式和數組數據樣本。我推測Array([0] =>數據)Array([0] => moredata)等等就足夠了。我的壞在沒有更清楚 –

+0

當然,存儲在$匹配中的數據可以用於多於僅僅通過print_r()來查看?????? (我希望),因爲我使用preg_match從我想要注入$結果字符串的字符串中提取小數位 –