为了账号安全,请及时绑定邮箱和手机立即绑定

PHP:fgets() 返回值未正确评估?

PHP:fgets() 返回值未正确评估?

PHP
ABOUTYOU 2021-07-11 15:38:44
我有一个 PHP 脚本,它应该根据名为 info.txt 的文件的第一行是“0”还是其他内容来执行某些操作。我的PHP文件:<?php$handle = fopen('info.txt','r');$line = fgets($handle);fclose($handle);// print detailed contents of $lineforeach(str_split($line) as $chr) {  printf("[%02x] %s <br />",ord($chr),$chr);}if ($line == '0\n') {  echo "equal";} else {  echo "not equal";}?>我在 stackoverflow 上的另一个答案上得到了 foreach 循环,它$line按字符拆分并打印字符的代码及其评估结果。当我运行这个文件时,输出是:[30] 0  [0a]  not equal看起来 info.txt 的第一行0\n就像我理解的那样,0x0a应该与\n. 我在 Mac OS X 上运行这个文件,但我认为这不应该改变 ASCII0x0a是\n字符的事实。任何想法为什么$line不评估为等于'0\n'?我是 PHP 的新手,所以问题很可能是一些明显的语法问题。谢谢!
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您必须使用双引号而不是简单的引号,以便“\n”被解释为换行符。使用单引号,字符被解释为 '\' + 'n' 个字符。


if ($line == "0\n") {

        echo "equal\n";

    } else {

        echo "not equal\n";

    }


查看完整回答
反对 回复 2021-07-16
  • 1 回答
  • 0 关注
  • 202 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信