为什么这会回显不匹配的值


Why is this echoing the values that don't match?

我相信我设置了正确的if(strpos());。在几个示例中看到它后,我尝试在else{};elseif {};中设置,但它们提示意外'}'等等。

<?php
$extension = '.com';
$lines = file('testdomains.txt');
foreach($lines as $line)
{
  // Check if the line contains the string we're looking for, and print if it does
  if(strpos($line, $extension) !== false)
    $line = preg_replace('/12:00:00 AM,AUC'b/','<br />', $line);
    $line = preg_replace('/,9'/28'/2013/', '', $line);
    echo $line;
}
?>

此代码

if(strpos($line, $extension) !== false)
$line = preg_replace('/12:00:00 AM,AUC'b/','<br />', $line);
$line = preg_replace('/,9'/28'/2013/', '', $line);
echo $line;

应该是

if(strpos($line, $extension) !== false) {
   $line = preg_replace('/12:00:00 AM,AUC'b/','<br />', $line);
   $line = preg_replace('/,9'/28'/2013/', '', $line);
   echo $line;
}

你忘了包装它们...

当使用不带大括号的 if 语句时,请记住,只有一个语句将作为该条件的一部分执行。如果要放置多个语句,则必须使用大括号,而不仅仅是将它们放在同一行上。

你的代码应该是这样的

if(strpos($line, $extension) !== false){
    $line = preg_replace('/12:00:00 AM,AUC'b/','<br />', $line);
    $line = preg_replace('/,9'/28'/2013/', '', $line);
    echo $line;
}