0
這裏是我的代碼的一部分PHP:SUBSTR跑道環
$hold = $this->content;
$hold_table = array();
for($i=0; $i<strlen($hold); $i++){
$t = substr($hold, $i, 10);
$count = substr_count($hold, $t);
if($count > 1){
$hold = str_replace($t, '', $hold); //Just iterating for now to get counts
$hold_table[bin2hex($t)] = $count;
}
}
$this->content
是在讀取文件
如果「10」在這一行:$t = substr($hold, $i, 10);
是10或更低,它工作正常,並吐出結果很好。
如果我改變10來說「15」。該腳本只是掛在一個循環中。
我不覺得有什麼,我在運行任何數組密鑰大小限制和「FOR」如果$i > strlen($hold)
任何想法,爲什麼從10到15的原因混亂改變循環應該結束?
我實際上可以推到14沒有問題 –
你正在嘗試做**真的很奇怪。你循環字符串直到它結束,並且在每次迭代時嘗試從長度爲10的當前字符開始獲取子字符串。所以,我真的不明白爲什麼它是字。當'$ i'是'strlen($ hold)-1'時,你期望'substr'返回什麼?當然,它足夠聰明,不會崩潰,但仍然,這是相當奇怪的方法 – J0HN
正確。但是如果字符串不止一次匹配,我就把它拉出來,這就是我離開計數器的原因。我想通過重複消除儘可能多的字符串。你是否暗示我通過在下一個循環之前檢查strlen來捕獲錯誤?當for循環應該捕獲它時,似乎沒有必要。 –