SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.06.2017, 19:32:14
JayJericho JayJericho ist offline
Anfänger
 
Registriert seit: Jun 2017
Alter: 41
Beiträge: 2
If / While Schleife funktioniert nicht

Servus,

ich hab da ein kleines Problem, und ich glaub ich sehe gerade den Wald vor lauter Bäumen nicht mehr. Bin allerdings auch noch recht frisch in der Materie, von daher ist auch ein blutiger Anfängerfehler nicht ausgeschlossen

Ich habe ein kleines Script, welches eine Webseite parsen sol. Jedes mal, wenn es mit einer Nummer durch ist, soll es diese um 1 erhöhen, bis die Nummer nicht mehr vorhanden ist. Um zu sehen, ob die Zeile vorhanden ist, habe ich zuvor einen Check eingebaut.

Der Code funktioniert manuell wunderbar, er macht alles was er soll, auch wenn ich die Nummern verändere. Nur das automatisieren mit Schleife will nicht. Es folgen noch mehrere IF Bedingungen und das Zerlegen von Strings, aber das sollte eigentlich keinen Unterschied für die Schleife machen.

Fehlermeldung: Gibts keine, hängt sich einfach auf. Würde ja auf eine Dauerschleife tippen, wüsste aber nicht warum die dauerhaft laufen sollte.


Hier mal der Code

Code:
$web_page = http_get(hier kommt eine website rein);

// Schleife vorbereiten & String vorbereiten

$i ="3";                           // Nummer des Datenpakets was ich haben will
$i2 = 'data-number="';     //das ist der beginn der Daten die ich haben will
$i3 = $i2.$i;                     //Strings zusammensetzen                     


// Check ob Nummer vorhanden, Schleifenbedingung

$target = $web_page['FILE'];                                                   
$findno1   = $i3;                                            // Testen ob $i3 vorhanden ist
$pos = strpos($target, $findno1);                    //  true oder false

for($i; $pos == true); $i++)                           //und hier hängt es.

{

if ($pos == true)                                            // Wenn vorhanden, los gehts

{.......
Alternativ hatte ich es mit while ($pos == true) ...... $i++ versucht, kam aber zum selben Schluss. Irgendwas hab ich übersehen, aber ich komm nicht drauf.

Hoffe Ihr könnt helfen :)
Mit Zitat antworten
  #2  
Alt 17.06.2017, 00:49:08
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: If / While Schleife funktioniert nicht

Hallo und wilkommen hier im Forum.

Kann $pos auch mal false werden? Wenn nicht, landest Du in einer Endlosschleife.
Leider wurde der Code um solch grundsätzliche Informationen gekürzt (Anfängerfehler).
WHILE wäre hier wohl die bessere Lösung, da Du nichts hoch zählst was Du auch abfragst.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #3  
Alt 17.06.2017, 11:54:38
JayJericho JayJericho ist offline
Anfänger
 
Registriert seit: Jun 2017
Alter: 41
Beiträge: 2
AW: If / While Schleife funktioniert nicht

Danke fürs Willkommenheißen :)

Ja, $pos wird falsch, sobald die nummer nicht mehr vorhanden ist, die else Funktion tritt dann ein. Das hat alles wunderbar geklappt, wenn ich es manuell eingebe, nur eben nicht wenn ich es in eine Schleife stecke :(


Der ganze Code ist ein wenig lang, um ihn hier zu posten, aber im Prinzip sieht das Ganze so aus (ohne Schleife)

Code:
$web_page = http_get(xxxx)

$i ="1";
$i2 = 'data-number="';
$i3 = $i2.$i;
$i4 = $i+1;                                                              

$target = $web_page['FILE'];                                                
$findno1   = $i3;                                                               
$pos = strpos($target, $findno1);                                            

                                                                             
if ($pos == true)                                                          

{

$nr1 = return_between($web_page['FILE'], 'data-index="'.$i, 'data-index="'.$i4, EXCL);

//Check ob No Runner

$nunrunner = $nr1;                                                             
$findnorunner   = "/silks/nonrunner.png";                                   
$posnorunner = strpos($nr1, $findnorunner);                                  

if ($posnorunner == false)                                                      

{

$starternr1 = return_between($nr1, 'data-number="', '"', EXCL);
echo "<p></p>",$starternr1;

//....... mehr code

$sg11 = return_between($nr1, 'name summary form-, '<i class="icon-tracker"></i></a></h2>', EXCL);

//....... mehr code

// das lässt sich leichter zusammenfassen, ist aber zum debuggen leichter für mich wenn es einzeln aufgelistet ist
$sg11 = strip_tags($sg11);
$sg11 = str_replace("&#xA;", "", $sg11);
$sg11 = str_replace("<th>", "", $sg11);
$sg11 = str_replace("</th>", "", $sg11);
$sg11 = str_replace("<td>", "", $sg11);
$sg11 = str_replace("</td>", "", $sg11);
$sg11 = str_replace("&amp", "", $sg11);
$sg11 = str_replace(";amp;", "", $sg11);
$sg12 = return_between($sg11, 'All', 'Grey ', INCL);
echo "<xmp>",$sg12,"</xmp>";

//....... mehr code


}

else                                                                       

{

$starternr1 = return_between($nr1, 'data-number="', '"', EXCL);
echo "<p></p>",$starternr1;
                                                                    
$form1 = return_between($nr1, 'card-form__stats">', '<', EXCL);
echo "<p></p>",$form1;

//....... mehr code

}

///////////////////////////// Ende IF Funktion 2


}


else

{
    echo "Ende";

}

?>
Ich habs mal ein wenig zusammengestrichen. Wenn ich die Nummer manuell variiere, stimm das Ergebnis immer. Lasse ich es mit einer Schleife und $i++ addieren, hängt sich z.B. Scriptly auf. Einmal hatte ich bei einer Konstruktion "empty needle" nach dem Abbruch als Fehlermeldung, lässt sich aber derzeit nicht reproduzieren.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Links zählen - Problem mit While Schleife Rick11 PHP für Fortgeschrittene und Experten 7 10.07.2008 19:05:57
str_replace in while schleife unter php5 funktioniert nicht mehr.. Boneshaker PHP Grundlagen 2 07.01.2008 11:49:41
Statistik-Balken mit while Schleife JB PHP Grundlagen 2 21.09.2005 15:34:23
while Schleife und Variablen andy0935 PHP für Fortgeschrittene und Experten 4 26.01.2004 19:05:55
einzelnen wert in ner while schleife aus nem array löschen Stifler PHP Grundlagen 6 16.12.2003 11:29:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:45:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt