2013-07-17 66 views
-2

我的程序的目標:將一個大字符串拆分成一個字符串數組,其中每個字符串包含子字符串「zone」之間的文本片段以及該子字符串的下一個出現次數。兩個索引之間的子串

我試了一下:

#Get file into a string 
$filecont=file_get_contents($filename); 
#Count all occurences of the substring, and get the positions of the substring into the array $arr 
$arr=strallpos($filecont,"zone",0); 
#The function strallpos does its job. The array $arr is now: 
#Array ([0] => 70 [1] => 148 [2] => 197 [3] => 316 [4] => 500 [5] => 637 [6] => 709 [7] => 748 [8] => 867 [9] => 878 [10] => 940 [11] => 990 [12] => 1154 [13] => 1321 [14] => 1440 [15] => 1561 [16] => 1684 [17] => 1695 [18] => 1759 [19] => 1811 [20] => 1926 [21] => 2045 [22] => 2168 [23] => 2285) 
#Find and return the substring 
for ($i=0;($i+1)<=count($arr);$i++) 
{  
    #Line 53 follows 
    print (substr ($filecont,$arr($i),($arr($i+1)-$arr($i))));  
} 

我得到的錯誤是:Fatal error: Function name must be a string in C:\wamp\www\dns.php on line 53

我在做什麼錯?我想要一些關於錯誤代碼的指針。

+0

你試圖獲得字符串或字符串的位置? –

+0

我以數組$ arr的形式獲取了子字符串的位置,它的每個值都包含字符串出現的位置。現在我試圖返回這些位置之間的字符串段。 – Droidzone

+1

'()'調用函數,'[]'訪問數組指示符。 – deceze

回答

2

的解決方案似乎是,你需要使用爆炸,如:

$zones = explode("zone", $filecont); 

這將存儲陣列中包含的單詞「區域」之間的所有字符串$區。嘗試並告訴它是否工作:)