Hans im Glück: Sehr viele URL aus PHP-Skript aufrufen um API anzusprechen

Hi,
ich möchte aus einem PHP-Skript dynamische URLs aufrufen, um eine HTTP-API zum Versenden von SMS anzusprechen.
Jede URL übergibt dabei die dynamischen Werte von Telefonnummer, Nachricht etc. Es soll möglich sein soll, sehr viele URLs (>1000) in sehr kurzer Zeit  aufzurufen. Die aufgerufene Seite sollte für den User nicht sichtbar sein, also im "Hintergrund" geöffnet werden.
Nun meine Fragen:

  1. Über welche PHP-Funktion sollte ich den Aufruf durchführen? fopen? vielleicht sogar mit ajax (http request)? andere Ideen (am besten simultane Aufrufe, weiß aber nicht wie)?
  2. Weiß jemand wie lange so ein URL-Aufruf dauert? Könnte es da zu Problemen mit dem Timeout bei PHP-Skripten kommen? (falls ja, könnte man ja dieses Problem evtl. über einen Cronjob lösen?!)
    Vielen Dank schon mal
    Schönen Gruß
  1. Hallo,

    ein moeglicher Loesungsansatz waere ein Cronjob mit einem cURL Script. Das wuerde etwa so aussehen:

    Shellscript:
    php -f script.php, naeheres siehe hier

    PHP-Script:

    // Der Code kommt aus einer meiner Funktionen, den wirst du an deine Gegebenheiten anpassen muessen, mehr hierzu auf dieser Seite
    function deine_curl_function($url) {
        $result    = false;
        $handle    = curl_init($uri);

    if($handle) {
          curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($handle, CURLOPT_HEADER, 0);
          curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
          curl_setopt($handle, CURLOPT_TIMEOUT, 20);
          curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 10);
          curl_setopt($handle, CURLOPT_FRESH_CONNECT, 1);

    //get the content
          $result = curl_exec ($handle);

    //get the status header
          $status = curl_getinfo($handle, CURLINFO_HTTP_CODE);

    //if we did not get a 200 http status, return false
          if($status != 200) {
            $result = false;
          }
          curl_close ($handle);

    }
        return $result;
    }

    foreach($array_mit_urls as $url) {
      deine_curl_function($url);
      set_time_limit(20 oder so);
    }

    Das ist, wie gesagt, nur eine Denkansatz, bestimmt gibt es auch noch smartere Wege.

    Gruss

    Dieter

    1. Okay, danke für die Antwort. Schau ich mir direkt mal an :-)

      1. Hat noch jemand andere Vorschläge?
        Würde es sehr zu schätzen wissen...