在PHP中while循环没有输出?

时间:2015-01-17 05:51:42

标签: php

我一直试图从php中的字符串中取出一些值,但没有获得成功所以如果你有人可以请看看我的代码:

$html = "[ect]afdbec[ect]";
$output =true;
$x=1;

while ($output == true) {
$pos = strpos($html,"[");
$value = substr($html,$pos,$x);
echo $value;
$x++;
if ($value == "]") { $output = false; }
}

2 个答案:

答案 0 :(得分:2)

我认为您的问题可能是您$value等于"]" (在if语句中),但$ value永远不会只是一个字符;你从第一个" ["。

的位置始终substr()要求它

您可能希望了解preg_match() - 如果您不熟悉,那么会有轻微的学习曲线,但它会在未来的发展中帮助解决这种情况。< / p>

答案 1 :(得分:1)

将行$pos = strpos($html,"[");放在while循环之外。因为,它在循环的每次迭代中将$pos的值初始化为"["的位置。我认为它不会解决这个问题。

请习惯preg_match()。将有更简单的方法来做到这一点。

请尝试:

$html = "[ect]afdbec[ect]";
preg_match('~\[(.*?)\]~', $html, $match);
echo $match[1];

请同时查看here