PHP-can';“不要比较两个”;“字符串”;(?)

PHP-can';“不要比较两个”;“字符串”;(?),php,string,comparison,Php,String,Comparison,这是我的代码: $handle = @fopen("csgo_english.txt", "r"); //read line one by one $paintkitsStarted = false; while (!feof($handle)) // Start looping until there is no line anymore. { $

这是我的代码:

   $handle = @fopen("csgo_english.txt", "r"); //read line one by one


                $paintkitsStarted = false;
                while (!feof($handle)) // Start looping until there is no line anymore.
                 {
                    $buffer = fgets($handle, 4096); // Read a line.

                     $convertedBuffer = $buffer;
                        echo $convertedBuffer;

                     if($convertedBuffer == "// Paint Kits "){
                         $paintkitsStarted = true;
                         echo "Paintkit Line found! <br>";
                     }
                     if($convertedBuffer == "// END CRATE_COMMUNITY_10 "){
                        $paintkitsStarted = false;
                         echo "Paintkits ending here! <br>";
                     }
                     if($paintkitsStarted == true){
                         echo $buffer . "<br>";
                     }

以及

$convertedBuffer = $buffer . "";
我不知道为什么它不能正常工作,因为我实际上通过使用
echo$buffer
从输出中复制了所需的字符串,这应该可以工作


如果有人有想法,我会很高兴听到他们:)

好的,所以我仍然不知道问题出在哪里。但是这个文件可能有点问题,因为我只是把原文的内容复制到了第二个文件中,然后在第二个文件中进行了尝试,结果成功了。别问我为什么…

一定要比较使用==你只使用了一个=,还有
var\u dump($convertedBuffer)
@volkinc我想你应该买些眼镜。。。我所有的if都是由两个相等的值构成的;)读取长度为-1字节或换行(包含在返回值中)时,读取结束。也许
trim($buffer)
并去掉双引号字符串中的尾随空格。
echo
对于调试来说是一个非常糟糕的选择,原因有几个。尝试一些理智的方法,比如
var\u dump
。你检查过文件编码了吗?UTF-8有两个初始字节用于“警告”,它是用UTF-8编码的,这些字节不会显示在任何“echo”输出中,但会与另一个字符串进行任何比较,而不会导致这些字节失败。对于其他文本文件编码也可能如此。BOM就是这个词。这就是“头字节”的调用方式。每个编码允许不同的字符。我主要使用UTF-8,因为它比只对英语有用的基本ANSI有更广泛的字符支持。其他编码允许输入日语文本,而宽字符编码(字符为2个或更多字节)允许输入同一文件中的任何字符。
$convertedBuffer = (string)$buffer;
$convertedBuffer = $buffer . "";