Peter: mehrer operation gleichzeitig...

hallo,

ich habe ein paar sehr zeitintensive funktionen, die in einem skript aufgerufen sich nur nacheinander ausführen lassen und damit entpsrechend zeit brauchen. Da die schnelligkeit nur an der geschwindigkeit der anderen Server liegt, es daher auch möglich sein sollte mehrere aktionen gleichzeitig auszuführen, wüßte ich gerne ob da einer eine lösung kennt oder entsprechende quellen dazu. Das skript holt sich inhalte  andere seiten und durchsucht sie, also eine art kleine suchmaschine, nun denke ich aber ist das hauptsächlich zeitintensive daran das einlesen der anderen seiten von anderen servern ist. wenn man nun 5 oder 6 seiten auf einmal paralell einlesen könnte wäre das schonmal ein enormer zeitgewinn...kann jemand helfen ?

gruss
 Peter

  1. ich habe ein paar sehr zeitintensive funktionen, die in einem skript aufgerufen sich nur nacheinander ausführen lassen und damit entpsrechend zeit brauchen.

    [..]

    das hauptsächlich zeitintensive daran das einlesen der anderen seiten von anderen servern ist. wenn man nun 5 oder 6 seiten auf einmal paralell einlesen könnte wäre das schonmal ein enormer zeitgewinn...kann jemand helfen ?

    Mit socket_set_blocking() kannst Du die Sockets in den nicht-blockierenden Modus versetzen, d.h. falls noch nichts zum lesen da ist, kehren Funktionen wie fgets() sofort mit einem leeren Ergebnis zurück anstatt auf Daten zu warten und damit das Skript zu blockieren.

    Eine Busy-Read-Schleife à la

    while (noch_ein_socket_offen())
       {
        if (socket_noch_offen($socket1)) $daten1.=fgets($socket1);
        if (socket_noch_offen($socket2)) $daten2.=fgets($socket2);
        if (socket_noch_offen($socket3)) $daten3.=fgets($socket3);
        ..
       };

    gehört zwar eigentlich in die Computersteinzeit von C64, MS-DOS und Co., aber anders geht's nicht. Weder Signale noch Threads werden von PHP unterstützt.

    Gruß,
      soenk.e