2013-11-27 31 views
-3

我希望有人能幫助我在這裏。我只是編碼一點點而我被卡住了。小費會很棒,這解釋了我的錯誤。PHP腳本不起作用。雖然條件內循環

這個任務比我現在正在做的更復雜。目前,我希望for循環檢查字符串的每個子字符串。循環內部是一段時間的條件,它應該保持回顯子字符串,直到子字符串是一個空格。然後它應該停止迴應。

我不明白爲什麼它不起作用。我的服務器上有TimeOut。

<?php 
// Task 
// Find-and-Replace 
// "whole word" match 
// Text is sorted as array of character 

$text = "This film is the best film of the year."; // Find: film, replace: movie 
$word = "film"; 
$replace = "movie"; 
echo strlen($text) . "<br>"; 

for($i = 0; $i <= strlen($text); $i++){ 
    while(substr($text,$i,1) != " ") { 
     echo substr($text,0,1); 
    } 
} 



?> 

編輯: 它仍然不能正常工作:

for($i = 0; $i <= strlen($text); $i++){ 
    while(substr($text,$i,1) != " ") { 
     echo substr($text,$i,1); 
    } 
} 

沒有While循環通過它的每一個字母迭代。但它不適用於whileloop。

+1

它永遠不會退出while循環開始。在第一次迭代中,它會一遍又一遍地檢查*相同的*子字符串。你應該試着用for循環... – immulatin

+1

你並沒有在while循環中增加$ i,所以你總是比較第一個字符和空格....也許把'while'改爲'if ',儘管我並不完全清楚你想要達到什麼樣的效果 –

+0

你只是想把世界「電影」中的所有單詞「電影」都取代嗎? –

回答

0

這是使用正則表達式要容易得多:

$text = "This film is the best film of the year."; // Find: film, replace: movie 
$word = "/film/i"; 
$replace = "movie"; 

echo preg_replace($word, $replace , $text); 
+0

謝謝。我本來可以用str_replace來完成它,但是我試圖完全沒有字符串操作函數。我更新了我的代碼......但它仍然不起作用:(謝謝你 –

+0

這對我來說很好,我測試過了。你爲什麼要避免字符串操作? – portforwardpodcast

+0

因爲我正在做一個「程序員「的課程,這就是爲什麼,所以你說,我的更新後的代碼適合你嗎?奇怪和奇怪的同步 –