1

祝大家有美好的一天。我正在使用zend+smarty,但我认为该框架与该问题没有任何关系。我有以下情况:

     A script that gets a string from a specified site using an api. The string is retrieved corectly so I'll just assign a string to a variable:

     $string = 'String retrieved from api.';
     $string = strstr($string, "<?xml", false);

     libxml_use_internal_errors(true);
     $xml = simplexml_load_string($body);

听起来不错,看起来不错。现在的问题。

当我在我们的本地测试机器上使用它时,它就像做梦一样。完全没有问题。另一方面,在生产机器上我得到这个:

警告:第 720 行的 /home/prj/include/DatabaseObject/Ctrl.php 中 strstr() 的参数计数错误(这是 strstr 行)。

我在两台机器上检查了 strstr 之前的字符串,它们是相同的。同样在 strstr 行之后的第二台服务器上,字符串变为空(在另一台服务器上它被正确转换)。

我真的不明白......代码是一样的。字符串是一样的。对我来说有点奇怪。

4

1 回答 1

5

第三个参数“before needle”——一个布尔值——被添加到 php 5.3 中。您的生产服务器可能正在运行早期版本。

PHP.net

strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

  • 5.3.0 添加了可选参数 before_needle。
于 2011-04-29T15:52:44.330 回答