ID: 25781
Updated by: [EMAIL PROTECTED]
Reported By: imscorpio at hotmail dot com
-Status: Open
+Status: Bogus
Bug Type: Filesystem function related
Operating System: Windows 2000 Pro
PHP Version: 4.3.3
New Comment:
"$my_position = int;" probably isn't doing what you're
expecting it to do. It's setting $my_position to the
string "int", not making it an integer. (Use a var_dump()
and you'll see what I'm talking about.)
A for loop or a foreach loop would probably be better in
this case anyway, breaking out of it if necessary when
strpos() returns false.
J
Previous Comments:
------------------------------------------------------------------------
[2003-10-07 15:04:11] imscorpio at hotmail dot com
a
------------------------------------------------------------------------
[2003-10-07 15:02:48] imscorpio at hotmail dot com
Description:
------------
If you loop a file line by line and searching with strpos() it doesn't
know if the file has ended, reached EOF. It will contiue untill
crash...
Reproduce code:
---------------
//scritp.php
<?php
$my_position = int;
$haystack = $file_line[$my_position];
$position = strpos ( $haystack, $needle );
while ($position === false){
$my_position++;
$haystack = $file_line[$my_position];
$position = strpos ( $haystack, $needle );
}
?>
Expected result:
----------------
Nothing to read from or the $haystack has passed the EOF.
Actual result:
--------------
Fatal error: Maximum execution time of 30 seconds exceeded in
script.php on line 9
Any line within the while()
during 30sec it can go up to 65.000 - 70.000 lines
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25781&edit=1