Re: [PHP] Undefined offset on Windows not on Apache?
From: John W. Holmes (holmes072000_at_charter.net)
Date: 11/30/03
- Next message: Chris Williams: "Undefined offset on Windows not on Apache?"
- Previous message: Reidar Solberg: "Accessing .bat file from PHP"
- In reply to: Chris Williams: "Undefined offset on Windows not on Apache?"
- Next in thread: Chris Williams: "Re: [PHP] Undefined offset on Windows not on Apache?"
- Reply: Chris Williams: "Re: [PHP] Undefined offset on Windows not on Apache?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sun, 30 Nov 2003 12:56:28 -0500 To: Chris Williams <chris@escaperadius.com>
Chris Williams wrote:
> The first and last lines contain carriage returns. The second or middle line
> contains sample data.
>
> The script that reads and parses the data is:
>
> $countLines = fopen("data.txt", "r");
> while (!feof($countLines))
> {
> $newLine = fgets($countLines, 1024);
> echo "line length: " . strlen($newLine) . "<br>";
> if(strlen($newLine) > 0)
> {
> $newLine = ereg_replace ("\"", "", $newLine);
> $zip_forward = explode(",",$newLine);
> $location_id = trim($zip_forward[0]);
> echo "array size: " . count($zip_forward) . " ID: $location_id<br>";
> $zip_to = trim(substr($zip_forward[1], 0, 5));
> }
> }
> fclose($countLines);
>
> What's odd here is that the last line, which has a length of 0, should never
> cause the if(strlen($newLine) > 0) to execute the lines of script contained
> within the if conditional. And in fact the lines DON'T get executed.
> However, on the Windows server I get the following error
> PHP Notice: Undefined offset: 1 in \debug.php on line 20. This points to my
> code that evaluates the second element of the array $zip_to =
> trim(substr($zip_forward[1], 0, 5));
>
> If I never evaluate the $zip_forward[1] array element within the if
> conditional, why would PHP test the array $zip_forward for the proper number
> of elements?
Okay, if you're getting that NOTICE then the line of code is executing.
So even though you think the strlen() line is failing, it's not.
Anyhow, the whole issue here is just that your two servers have
different error_reporting() levels. One is set to show NOTICES while the
other is not. If you use @trim(...), you can suppress this warning.
The code is running the same on both servers, though...
-- ---John Holmes... Amazon Wishlist: www.amazon.com/o/registry/3BEXC84AB3A5E/ php|architect: The Magazine for PHP Professionals – www.phparch.com
- Next message: Chris Williams: "Undefined offset on Windows not on Apache?"
- Previous message: Reidar Solberg: "Accessing .bat file from PHP"
- In reply to: Chris Williams: "Undefined offset on Windows not on Apache?"
- Next in thread: Chris Williams: "Re: [PHP] Undefined offset on Windows not on Apache?"
- Reply: Chris Williams: "Re: [PHP] Undefined offset on Windows not on Apache?"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|