Hallo,
ich habe zurzeit ein Problem mit einer rekursiven PHP Funktion die Infos von URLs auslesen soll. Die Funktion an sich habe ich leider gerade nicht zur Verfügung, da diese auf dem Server meines Arbeitgebers zur Entwicklung ruht.
Aber mein Problem ist auch recht simpel zu verstehen.
Hier ein kleines Beispiel
Mein Problem ist, dass bei mehrmaligem rekursiven Aufrufen der Funktion Werte des result Arrays erst gefüllt und dann um einen Wert geleert werden und später wieder gefüllt, wichtig ich Fasse das Array während der Funktion nicht mehr an.
Außerdem zählt die $cnt_sites variable erst hoch und wird dann wieder um eins erniedrigt bis in den negativen Zahlenbereich und fängt dann irgendwann wieder an hochzuzählen, hier gilt wieder ich fasse die Variable bis zur Übergabe nicht mehr an.
Können diese Probleme an der Speicherzuweisung liegen, sodass zum Beispiel zu wenig Arbeitsspeicher zur Verfügung steht (Arbeitspeicherzugriff Erweitern) oder ist die Funktion zu lang ca. 400 Zeilen Code oder sind es zuviele Parameter (9 Stück) ?????
Ich bin völlig ratlos, da sich die zwei genannten Fehler nicht logisch erklären lassen.
Bitte helft mir!
ich habe zurzeit ein Problem mit einer rekursiven PHP Funktion die Infos von URLs auslesen soll. Die Funktion an sich habe ich leider gerade nicht zur Verfügung, da diese auf dem Server meines Arbeitgebers zur Entwicklung ruht.
Aber mein Problem ist auch recht simpel zu verstehen.
Hier ein kleines Beispiel
PHP-Code:
<?php
// Hier der Funktionskopf Parameter insgesamt 9 aber Hier nur 3 zur Anschauung
function GetUrlInfo($url,$cnt_sites,$result_array) {
// Seiten Zählen und Ausgeben
$cnt_sites++;
echo $cnt_sites.'<br />';
// Informationen holen und in Array speichern (hier nur Beispielhaft)
$infos = array('Information1',
'Information2');
// Ergebnisarray füllen
foreach($infos AS $info){
// Werte als Key speichern
$result_array[$info] = '';
}
print_r($result_array);
echo '<br />';
// ca. 390 Zeilen Code
//ein rekursiver Aufruf (von 5 Stück in der Funktion)
GetUrlInfo($url,$cnt_sites,$result_array);
}
// Funktionsaufruf
$result_array = array();
$cnt_sites = 0;
$url = 'www.example.com';
GetUrlInfo($url,$cnt_sites,$result_array);
?>
Außerdem zählt die $cnt_sites variable erst hoch und wird dann wieder um eins erniedrigt bis in den negativen Zahlenbereich und fängt dann irgendwann wieder an hochzuzählen, hier gilt wieder ich fasse die Variable bis zur Übergabe nicht mehr an.
Können diese Probleme an der Speicherzuweisung liegen, sodass zum Beispiel zu wenig Arbeitsspeicher zur Verfügung steht (Arbeitspeicherzugriff Erweitern) oder ist die Funktion zu lang ca. 400 Zeilen Code oder sind es zuviele Parameter (9 Stück) ?????
Ich bin völlig ratlos, da sich die zwei genannten Fehler nicht logisch erklären lassen.
Bitte helft mir!
Kommentar