PHP脚本不起作用。虽然条件内循环

PHP脚本不起作用。虽然条件内循环

问题描述:

我希望有人能帮助我在这里。我只是编码一点点而我被卡住了。小费会很棒,这解释了我的错误。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

你只是想把世界“电影”中的所有单词“电影”都取代吗? –

这是使用正则表达式要容易得多:

$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

因为我正在做一个“程序员“的课程,这就是为什么,所以你说,我的更新后的代码适合你吗?奇怪和奇怪的同步 –