Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP - Strings in Array nach Anführungszeichen aufteilen.

Einklappen

Neue Werbung 2019

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

  • PHP - Strings in Array nach Anführungszeichen aufteilen.

    Guten Tag,
    ich bin dabei, eine Suchmaschine zu schreiben, ähnlich, wie es Google vorgemacht hat, allerdings komplett ohne SQL- oder ähnliche Datenbanken.

    Das Suchen nach Strings funktioniert bereits:
    PHP-Code:
    if (stripos($read,$string,0)!==FALSE
    {echo 
    "<br />".$read."<br />} 
    und falls ich möchte, dass das Such-Script jedes Wort einzeln sucht, schmeiß ich einfach über 'explode' jedes Wort in ein Array:

    PHP-Code:
    $array_string explode(" "$string); 
    und lasse jedes Element des Arrays wieder via 'stripos' suchen.

    So weit, so gut - ich möchte aber in meiner Suchmaschine noch einbauen, dass der Inhalt in Anführungszeichen zusammen bleibt.

    Also das Script soll Sachen in " " in Array1 schmeißen und ohne " " in Array2
    "Ein Fahrrad" Blumen sind "Auch manchmal"
    [Array1], [Array2], [Array1]

    Ich habe zwar einige Ansätze an Ideen, aber jede landet im nirgendwo.
    1. Anführungszeichen Exploden, dann weiß aber das Script nicht, welches nun in Anführungzeichen war und welches nicht.
    2. $neu = preg_replace('/\[b\](.*)\[\/b\]/isU', '', $neu); -> So wie bei diesem Befehl den inhalt der " " extrahieren.

    Und ab jetzt setzt mein wissen aus.

    Hat vielleicht jemand einen Ansatz, der mir weiterhelfen könnte?

    LG
    ChaOs


  • #2
    Sowas vielleicht?

    PHP-Code:
    preg_match_all('/([\"\'])([^\1]*?)\1/'$string$matches); 
    http://hallophp.de

    Kommentar


    • #3
      Optimal!

      Besten Dank!

      Kommentar


      • #4
        Bist sicher eine Suchmaschine auf Basis von langsamen Textdateien und nicht auf Grundlage einer dafür optimierten Datenbank zu erstellen?

        Kommentar


        • #5
          Textdateien, habe ich mir sagen lassen, sind erstmal grundsätzlich schneller, als bspw. SQL-DBs, weil sie zum einen im ASCCI-reinem Textformat sind und nicht mehr ent- bzw. decrypted werden müssen, und zum Anderen ein SQL-System von Hause aus mehr RAM benötigt, als reines PHP.

          Ferner kann ich mit Text-basierten Datenbanken meine Sicherheitsalgorythmen selbst bestimmen und selbst optimieren, was nötig ist.
          Zudem ganzen muss ich mich auch nicht mit 2 Sprachen für das Inlet rumschlagen - PHP macht mir schon spaß genug und das Sichern der .inc-Dateien ist via FTP machbar und einfacher, ohne die DBs erst auslesen lassen zu müssen (Copy+Paste).

          Daher habe ich mich für dieses System entschieden

          Grüße

          Kommentar


          • #6
            Der Zugriff mag schneller sein (wobei Datenbanken auch Textdateien sind), den Lookup auf einzelne Daten wird eine DB immer schneller hinbekommen, weil sie konkrete Indizies verwendet, Mechnaismen zur Zugriffsverwaltung und Datenoptimierung bietet etc.
            Wenn Du mehrere Textdateien benutzt, kommt noch der jeweilige Filesystemzugriff dazu.

            Sehr sonderbar finde ich auch Deine Argumentation - einserseits: DB benutzt zu viel RAM, andererseits: Schnelligkeit. Das ist ein Widerspruch in sich.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Wenn Du mehrere Textdateien benutzt, kommt noch der jeweilige Filesystemzugriff dazu.
              Ob jetzt der File-Zugriff (per wohlgemerkt 'PHP' und nicht File-Explorer = sehr viel schneller) oder der Zugriff auf einen Tabellenkopf schneller ist, will ich mich nicht drüber streiten, da im prinzip alles auf Nullen und Einsen basiert und damit kaum noch Übersicht geschaffen wird, was mehr bits und Bytes benötigt. Intelligente Dateisysteme ordnen die Textdateien zumindest in einem ordner dann auch hintereinander.

              Mögen sich die Götter streiten - Ohne DB's ist es zumindest dann in den anderen Punkten besser

              Kommentar


              • #8
                Ob jetzt der File-Zugriff (per wohlgemerkt 'PHP' und nicht File-Explorer = sehr viel schneller) oder der Zugriff auf einen Tabellenkopf schneller ist, will ich mich nicht drüber streiten,
                Musst Du ja nicht. Fakt ist, dass Daten im Arbeitsspeicher wesentlich schneller verarbeitet werden können, als langsame Zugriffe auf physische Speichermedien wie Festplatten.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar

                Lädt...
                X