Ankündigung

Einklappen
Keine Ankündigung bisher.

Asynchrone Threads in PHP

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Asynchrone Threads in PHP

    Hallo,
    ich schreibe grade ein Script, das eine bestimmte URL per Seitenaufruf in ca. 3000 Seiten posten soll.
    Mein erstes Script sah so aus:
    PHP-Code:
    <?php
    $url 
    $_POST['url'];
    echo 
    '<h1>Submitted <a href="' $url '">' $url '</a> to:</h1>';

    $backlinks file("links.txt");


    foreach(
    $links as $currlink)
    {
    $yourAnswer = ( strpos$currlink'[URL]' ) !== false );

    if(
    $yourAnswer == 'false') {
    $text str_replace("[URL]"$url$currlink);
    echo 
    '<a href="'.$text.'">' $text"</a><br />";
    file($text);
    } else {
    $text str_replace("[URLNOW]"$url$currlink);
    echo 
    '<a href="'.$text.'">' $text"</a><br />";
    file($text);
    }
    }
    ?>
    Die Ausführung über die Konsole klappt, wenn ich das ganze auf nem Webserver ausführen will bekomme ich jedoch einen ziemlich gestreßten Firefox und der Server kann irgendwann meine Requests nicht mehr ausführen.

    Nach stundenlanger Googelei hab ich jetzt die asynchronen Threads entdeckt, aber nicht wirklich verstanden, wie das ganze wirklich aussehen soll, denn in den Beispielen, die ich verwendet habe wird einfach nur eine function aufgerufen und die Auslastung bleibt logischerweise die gleiche!

    Any advices?


  • #2
    In PHP gibt es keine Threads die du selbst schreiben kannst. Wenn du so viel "Arbeit" hast dann muss die schon ausgeführt werden, ob das jetzt parallel oder sequenziell passiert ist irgendwo auch egal.

    Kommentar


    • #3
      Ok, danke für den Hinweis. War nur durch das drauf gekommen -> Multithreading PHP
      Script läuft jetzt auch ganz gut ohne das ganze, aber kurze Frage noch.
      Wird bei
      PHP-Code:
      file($url
      wirklich die Seite aufgerufen als wenn ich die Seite mit nem Browser besuche?

      Kommentar


      • #4
        Ich glaube dafür wäre http://de2.php.net/curl besser geeignet?
        Signatur:
        PHP-Code:
        $s '0048656c6c6f20576f726c64';
        while(
        $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

        Kommentar


        • #5
          cURL benutze ich auch in Perl, aber da ich auf meinem Webserver cURL nicht installieren kann werd ich wohl bei file() bleiben müssen.

          Trotzdem danke.

          Kommentar

          Lädt...
          X