Question

Good day to all. I am using zend+smarty, but I don't think the framework has any thing to do with the problem. I have the following scenario:

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

Sounds ok, looks ok. Now the problem.

When I use that on our local test machine it works like a dream. No problem at all. On the other hand, on the production machine I get this:

Warning: Wrong parameter count for strstr() in /home/prj/include/DatabaseObject/Ctrl.php on line 720 (this is the strstr line).

I checked the strings before strstr on the 2 machines and they are identical. Also on the second server after the strstr line the string becomes empty (on the other one it is correctly transformed).

I really don't get it... the code is the same. The string is the same. Is a bit strange to me.

Was it helpful?

Solution

The third paramater "before needle" - a boolean value - was added in php 5.3. It's likely your production server is running an earlier version.

see PHP.net

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

  • 5.3.0 Added the optional parameter before_needle.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top