【发布时间】:2012-09-09 22:35:09
【问题描述】:
在while循环中使用布尔运算符具有多个条件的正确方法是什么? 我在这里有这个脚本,我觉得应该可以工作,但是当我运行它时它出现空白。
$string = '"""JOHN"" <31255555656>","DAHDI/1-1",3948723,,"",';
for ($i=0; $i<strlen($string); $i++) {
if ($string[$i] == chr(34)) {
// chr 34 is ascii value for double quote chr 44 is for comma
while (($string[$i] != chr(34)) && ($string[$i+1] != chr(44))) {
echo $string[$i];
$i++;
}
}
}
理想情况下,我想要的是让脚本回显给定的字符串,直到指针 ($i) 到达双引号并且它前面的一个是逗号。我觉得这很简单,我显然遗漏了一些明显的东西。
【问题讨论】:
-
所以如果
$i位置的字符既是逗号又不是逗号,您希望代码执行吗? -
我真的觉得这可以通过战略性使用
preg_split和/或strtok来解决。你能更详细地描述你的任务,而不是你的解决方案吗? -
@lonesomeday 好吧,这里使用逗号作为分隔符。这显然有点多余,可以在
if之后立即重写为'$i++',但我认为这不是这里唯一的问题...... -
echo preg_replace('/^(.*)",/', '$1', $string);
标签: php while-loop conditional-statements boolean-operations multiple-conditions