Php 简单的if-else语句获胜';行不通
我有一个page.html,里面只有48个。我不能让这个if语句起作用Php 简单的if-else语句获胜';行不通,php,Php,我有一个page.html,里面只有48个。我不能让这个if语句起作用 <?php $myFile = 'http://site.com/page.html'; $content = file_get_contents($myFile); ?> <?php $num = "48"; ?> <?php if ($content == $num): ?> true <?php else: ?> false <?php e
<?php
$myFile = 'http://site.com/page.html';
$content = file_get_contents($myFile);
?>
<?php $num = "48"; ?>
<?php if ($content == $num): ?>
true
<?php else: ?>
false
<?php endif; ?>
真的
假的
如果我这样做,它会起作用
<?php if ($content == 48): ?>
true
<?php else: ?>
false
<?php endif; ?>
真的
假的
我怎样才能改变它使其工作?我认为这应该工作:
<?php
$myFile = 'http://site.com/page.html';
$content = file_get_contents($myFile);
?>
<?php $num = "48"; ?>
<?php if (trim($content) == $num): ?>
true
<?php else: ?>
false
<?php endif; ?>
真的
假的
..通过使用删除以下字符:
- “”(ASCII 32(0x20)),一个普通空格
- “\t”(ASCII 9(0x09)),一个选项卡
- “\n”(ASCII 10(0x0A)),一个新行(换行符)
- “\r”(ASCII 13(0x0D)),回车符
- “\0”(ASCII 0(0x00)),NUL字节
- “\x0B”(ASCII 11(0x0B)),一个垂直选项卡
$content
的值包含的“48\n”
,即数字48后面跟一个新行(或类似的内容)。这等于(非严格比较)int48
,但不等于字符串“48”
解决此问题的方法是在进行比较之前将$content
强制转换为int:
$content = (int) file_get_contents($myFile);
在第一个代码段中计算字符串,在第二个代码段中计算整数。确保将其强制转换为整数,如果这是您要查找的数据类型
$content = (int) file_get_contents($myFile);
尝试将$num强制转换为整数,$num=“48”是一个字符串。是否确认
$content
的值为48
。使用echo确认文件中48
后是否有换行符?另外,别忘了PHP拥有任何编程语言中最愚蠢的操作符之一:.48==“48”应该是真的,所以这不是问题1echo$content
返回48 2。文件中只有一行。不确定什么是“换行符”。3.这只是我正在做的一个小测试。真正的$num将是一个表的id,它返回一个常规的48。请告诉我,我想混淆的是字符串和整数之间的比较。