Script geht mit PHP 5.2.0 nicht?

Ich versuche momentan unten stehendes Script zum laufen zu bekommen ( XAMPP, PHP 5.2.0 ). Bei mir wird jedoch nur ein leeres Array ausgegeben ( Array () ). Laut einem Freund ( hats für mich auf seinem XAMPP probiert ) geht das Script. Wisst ihr warums ich nicht korrekt zum laufen bekommen?

PHP:
<?
$data = file_get_contents("http://web0.plv-008-ffm3.ec-a.net/data/publicdata.php");
preg_match("/<table>(.*?)<\/table>/", $data, $result);
$strRep = array("</td>","</tr>");
$tableRow = explode("<tr>", str_replace($strRep, "", $result[1]));
$dataList = array();
for($pos=2;$pos<count($tableRow);$pos++) {
    $tableData = explode("<td>", $tableRow[$pos]);
    for($i=0;$i<=count($i);$i++) {
        for($j=0;$j<10;$j++) $dataList[$pos-1][++$i] = $tableData[$i];
    }
}
echo "<pre>";
print_r($dataList);
echo "</pre>";
?>
 
PHP:
file_get_contents("http://web0.plv-008-ffm3.ec-a.net/data/publicdata.php");

allow_url_fopen bei einem aktiviert und beim anderen net?
 
Bei beiden in der PHP.ini on...

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = On

; Define the anonymous ftp password (your email address)

Nachtrag:
Hab gehört es könnte daran liegen das in PHP 5.2.0 die Menge für $data ( in obigem Script ) zu groß ist. Kanns mir aber nicht vorstellen da bei unten stehendem Script die auszulesende Seite korrekt angezeigt wird:

<?
$handle = fopen("http://web0.plv-008-ffm3.ec-a.net/data/publicdata.php", "r");
while(!feof($handle)) echo(fread($handle, 1024));
?>
 
Was genau passiert denn überhaupt? Wenn irgendwas nicht hinhaut, spuckt PHP normalerweise Fehlermeldungen (ggf. auch mal in der php.ini den Error Reporting Level prüfen). Zudem könnte es noch sein, dass short_open_tags bei dir deaktiviert ist... dann würde nämlich gar nix passieren.
 
short_open_tags sind on
; Allow the <? tag. Otherwise, only <?php and <script> tags are recognized.
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = On

; Allow ASP-style <% %> tags.

Habs aber auch schonmal mit <?php probiert und ging auch nicht.

Das Problem ist das keine Fehlermeldung kommt sondern im Browser nur ein leeres Array ausgegeben wird:

Ich hab jetzt gehört ( kA obs stimmt ) das es daran liegt das preg_match in PHP 5.2.0 nicht mehr soviele Daten verarbeiten kann?!?!? Das kanns doch nicht sein oder bzw. was mach ich dann ( steh sowieso mit RegEx auf Kriegsfuß :rolleyes: )?!?
 
Dann taste dich doch mal schrittweise vorwärts. Was steht zu Beginn nach file_get_contents() in $data, was danach in $result etc. Wenn du einen Debugger hast, sollte das recht schnell gehen, ansonsten musst du eben zwischendurch an den passenden Stellen ein paar print_r() einfügen.
 
Kenne nur den Zend Debugger, aber soweit ich das verfolge, findet man im Moment für PHP wohl auch nichts besseres.
 
hmmm das is komisch,
ich hatte noch nie Probleme mit preg_match wegen zu großen Datenmengen !?!

sicher dass der Fehler net irgedwo anders liegt?


ansonsten teil die daten doch in arrays auf und lass jeden teil einzeln durchlaufen...
ist zwar umständlich, aber sollte funktionieren^^
 
Wie alt ist denn dein Script? Es kann sein das, wenn dies schon für eine viel frühe Php Version war, du dieses abändern musst damit es funkz oder das du sogar etwas direkt in deiner aufgespielten php version.

Es kann sein, muss aber nicht.
 
Ich habs mim Debugger durchprobiert und scheinbar liegts wirklich am preg_match. Damits jetzt wenigstens so läuft hab ich im XAMPP auf das alte PHP geswitcht, aber blöd ists schon des es mim neuen nicht geht...
 
Zurück
Oben