我一直试图从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; }
}
答案 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