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

时间:2013-09-28 07:02:23

标签: php strpos

我相信我正确设置了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;
}

?>

2 个答案:

答案 0 :(得分:2)

此代码

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;
}

你忘了包装它们......

答案 1 :(得分:0)

当使用没有花括号的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;
}