【问题标题】:Function gets printed twice函数被打印两次
【发布时间】:2011-05-01 02:23:01
【问题描述】:

我做了这个函数,同样的结果被打印了两次。知道为什么吗?这是我的职责吗?我找不到任何问题。

$valid 是一个数组。

function validOutput($output, $valid, $name, $mirror){
                foreach($valid as $e) {
                    if(strpos($output, $e) != false) {
                        echo '<br />' . $name . '<br />';
                        echo '<textarea cols=100 rows=10>';
                        echo '[tab: Mirror' . $mirror . ']';
                        echo $output;
                        echo "</textarea>"; 
                    }
                }
}

如果您发现有任何问题,请告诉我,谢谢。

编辑:

$valid = array("facebook", "fbcdn", "megavideo", "video", "videoweed", "4shared");

【问题讨论】:

  • $valid的内容是什么?
  • 无法从这段代码中知道问题到底出在哪里,但是您要么将欺骗信息放入 $valid,要么您两次调用 validOutput()
  • @crayon Violet "在 $valid 中复制信息" 就是这样。谢谢。

标签: php arrays function foreach echo


【解决方案1】:

$valid 有两个元素是$output 的子字符串

您能展示一些示例输入吗?或许能解释一下$valid参数背后的动机是什么?

【讨论】:

  • @jon_darkstar 想通了,它是“视频”出现了两次。谢谢:)
  • 我仍然没有真正得到你正在做的事情的动力,而不是我需要的。您想为不属于$output$valid 的每个元素打印一次该内容吗?如果它做你想做的事,那就太棒了,我只是不明白
  • @jon_darkstar 不,但我想打印包含 $valid 字符串的内容,如果这有意义的话。
  • ooo 我误读了!=,它会按照你说的那样做,但是输出不包含$e 的任何部分,所以它只会重复。输出不会有任何不同。
  • @jon_darkstar 这是一个 while 函数,其中 $output[$i] :P
【解决方案2】:

我不知道这是否是问题所在,但strpos() 必须检查为=== false!== false,因为strpos 可能是0,它将被视为false

文档 > http://php.net/manual/en/function.strpos.php

【讨论】:

  • 啊,我明白了,不知何故,代码工作得很好。反正我会改正的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-16
  • 1970-01-01
相关资源
最近更新 更多