Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:读取while循环中分解字符串的第一个字符。导致问题的空字符_Php - Fatal编程技术网

PHP:读取while循环中分解字符串的第一个字符。导致问题的空字符

PHP:读取while循环中分解字符串的第一个字符。导致问题的空字符,php,Php,这可能是个简单的问题,但我找不到 我正在分解从textarea输入并存储的字符串。我使用nl2br(),这样就可以通过标记分解字符串 字符串正确地分解,但是当我尝试在while循环中获取字符串的第一个字符时,它只在第一行返回 注意:这里的概念是绿色短信,因此如果您熟悉这一点,那么您将看到我正在尝试做什么。如果不是,我会在代码示例下面做一个简短的描述 代码: while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { $comment = nl2br(

这可能是个简单的问题,但我找不到

我正在分解从textarea输入并存储的字符串。我使用nl2br(),这样就可以通过

标记分解字符串

字符串正确地分解,但是当我尝试在while循环中获取字符串的第一个字符时,它只在第一行返回

注意:这里的概念是绿色短信,因此如果您熟悉这一点,那么您将看到我正在尝试做什么。如果不是,我会在代码示例下面做一个简短的描述

代码:

while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$comment = nl2br($row['comment']);
$sepcomment = explode("<br />", $comment);
$countcomment = count($sepcomment);
$i = 0;



//BEGIN GREENTEXT COLORING LOOP
while($i < $countcomment) {

$fb = $sepcomment[$i];
$z = $fb[0]; // Check to see if first character is >

if ($z == ">") {
$tcolor = "#789922";
}
else {
$tcolor = "#000000";
}

echo '<font color="' . $tcolor . '">' . $sepcomment[$i] . '</font><br>';

$i++;
}
//END GREENTEXT COLORING LOOP


}
while($row=mysqli\u fetch\u数组($r,mysqli\u ASSOC)){
$comment=nl2br($row['comment']);
$sepcoment=explode(“
,$comment”); $countcomment=count($sepcoment); $i=0; //开始绿色文本着色循环 而($i<$countcomment){ $fb=$sepcoment[$i]; $z=$fb[0];//检查第一个字符是否> 如果($z==“>”){ $tcolor=“#789922”; } 否则{ $tcolor=“#000000”; } 回显'.$sepcoment[$i].
'; $i++; } //结束绿色文本着色循环 }
绿色文本:如果行的第一个字符是“>”,则整行的颜色变为绿色。如果不是,则颜色为黑色

图片

我尝试过的:

while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
$comment = nl2br($row['comment']);
$sepcomment = explode("<br />", $comment);
$countcomment = count($sepcomment);
$i = 0;



//BEGIN GREENTEXT COLORING LOOP
while($i < $countcomment) {

$fb = $sepcomment[$i];
$z = $fb[0]; // Check to see if first character is >

if ($z == ">") {
$tcolor = "#789922";
}
else {
$tcolor = "#000000";
}

echo '<font color="' . $tcolor . '">' . $sepcomment[$i] . '</font><br>';

$i++;
}
//END GREENTEXT COLORING LOOP


}
  • strip_tags()-认为可能是
    标记充当了第一个字符
  • $fb=preg_replace(“/(\s*)+/”,“,$sepcoment[$i])
  • str_replace()
  • echo$z//在第一行显示正确的字符,在接下来的行中显示为空
  • $z=substr($fb,0,1) 这是我刚刚做的一个测试,返回了字符串的前5个字符。

    有没有办法去掉这些空字符?

    试试“修剪”功能


    (可能是换行的问题,标记后面有\n\r字符)

    echo$fb[1]的输出是什么?Bam,就是这样。我知道这很简单。谢谢。