200 Dateien einlesen

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

  • 200 Dateien einlesen

    Wäre froh wenn mir hier jemand evtll. mit einem Lösungsansatz mal aushelfen könnte - bevor ich in die komplett falsche Richtung losforsche.

    Aufgabe:
    je nachdem sollen zwischen 200-500 xml files eingelesen werden und via php in die mysql datenbank eingelesen werden (mit simplexml klappt das bestens) .

    das problem besteht nun darin das ich nicht 500 php files haben möchte, welche die aufgabe übernehmen, sondern das etwas "automatisiert" haben möchte.

    lösungsansatz 1 wäre einfach eine Schlaufe mit der url durchlaufen zu lassen, die xml files zu öffnen, einzulesen.

    bei 10 files geht das schon mal etwa 30 sekunden, bei 200 - 500 files entsprechend länger - also irgendwie nicht grad praktisch.

    lösungsansatz 2 wäre jeweils einen datensatz aus, bzw. einzulesen und dann mit

    PHP-Code:
    $id ++;
    header("location:xxx?id=$id"); 
    auf die selbe datei zuzgreifen und so die nächsthöhere id, bzw. url abzufragen.
    hier ergeben sich aber auch noch probleme, z.b. im fall das eine id mal entfernt wird. wie schon geschrieben: ich brauch hier alles andere als eine fertige lösung - vielmehr etwas gedanklichen Beistand, evtll. hat ja schon mal jemand sowas gemacht. vielen Dank.
    http://www.radiocity.ch

  • #2
    naja - bei der menge kann es auch nicht schnell gehen.
    setze den zeitlimit höher bzw. ganz ab und lass es in einer schleife geschehen.

    Kommentar


    • #3
      danke.
      ok.das mit der Schleife scheint mir ja auch am vernünftigsten - betreffend dem zeitlimit müsste ich dann aber noch eine wohl dumme frage hinterhersenden.

      das script läuft jetzt bei mir auf der xampp testversion und braucht rund 15 Minuten bis alle Dateien eingelesen sind (das wäre ein relativ schlanker test - grösseres sollte dann auch vorkommen) - wie kann ich das dann später in der praxis erreichen das der server eine 15 + minütige Abarbeitung erlaubt?

      kann ich das z.b. mit set_time_limit (x); erzwingen, oder muss mir der Server-Admin hier die unbeschränkte Zeitfreigabe erlauben .... und wäre es dort dann möglich, die freigabe nur für einzelne dateien zu erlauben - ich bitte um entschudligung wenn solches zum allgemeinwissen gehören sollte - ich kenn mich auf diesem Gebiet überhaupt nicht aus.
      http://www.radiocity.ch

      Kommentar


      • #4
        also die zeitbeschränung für ein script wird in der php.ini gesetzt (max_execution_time), die muss entsprechend heraufgesetzt werden.

        eine alternative wäre es, das php-script auf der kommandozeile arbeiten zu lassen, da kann man meines wissens nach anderere php.ini-dateien mit anderen zeitlimits einbinden.

        gruss
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Original geschrieben von Kropff
          also die zeitbeschränung für ein script wird in der php.ini gesetzt (max_execution_time), die muss entsprechend heraufgesetzt werden.
          geht auch mit ini_set und set_time_limit

          eine alternative wäre es, das php-script auf der kommandozeile arbeiten zu lassen, da kann man meines wissens nach anderere php.ini-dateien mit anderen zeitlimits einbinden.
          nope, falsch, bzw. unnötig: http://de3.php.net/features.commandline
          7 Absätze runterscrollen und die erste Tabelle angucken!

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Original geschrieben von ghostgambler
            [B]geht auch mit ini_set und set_time_limit
            also kann man mit set_time_limit einerseits die zeit der ausführung limitieren (logisch) anderseits auch längere zeiten als default erzwingen?
            http://www.radiocity.ch

            Kommentar


            • #7
              Original geschrieben von bobby
              also kann man mit set_time_limit einerseits die zeit der ausführung limitieren (logisch) anderseits auch längere zeiten als default erzwingen?
              Es gilt aber nur für das aktuelle Skript, wo man die Funktion aufruft, das Ding überschreibt keine Einstellungen in der .ini!

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar

              Lädt...
              X