Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Inhalt zwischen Kommentaren löschen

Bin ein wenig am verzweifeln. Ich möchte in einem String sämtlichen Inhalt löschen bis auf den, der zwischen zwei bestimmten Kommentar-Tags steht.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Zum Schluß soll im String nur noch der Text zwischen den Kommtentaren übrigbleiben.
Ziel ist, aus einer kompletten HTML-Seite den Inhalt zu extrahieren.

Soweit ich herausgefunden haben funktioniert das ganze über "preg_replace". Weiter bin ich leider noch nicht gekommen.

Danke schonmal im Voraus

Gruß

lonestar3
Hier gehts zum Orginal Eintrag "Inhalt zwischen Kommentaren löschen" im Forum

Antworten

Zeilenweise mit [doc]file[/doc] einlesen - mit [doc]preg_match[/doc] prüfen, ob die Zeile die gesuchten Ausdrücke beinhaltet (Schleife), dann mit [doc]split [/doc] oder [doc]explode[/doc] trennen. Dann hast du den gesuchten string im Array und kannst damit weiterarbeiten.


2.

@simonhard

Danke erst mal für deine Antwort. Leider bin ich noch blutiger Anfänger was PHP betrifft. Deswegen werde ich aus deiner Antwort nicht wirklich schlau. Kannst du das etwas genauer erklären.


Danke im Voraus

Gruß

Lonestar


3.

Ich würde, das ganze mit [doc]file_get_contents[/doc] einlesen, und dann mit [doc]explode[/doc] auseinander nehmen. Dadurch ersparst du dir die Regülären Ausdrücke !

Was hast du denn schon probiert ? So schwer ist das nun wirklich nicht !


4.

@johnpatcher

Oh, glaub mir für einen Anfänger wie mich ist das alles andere als leicht. Hatte hier im Forum schon gesucht und folgendes gefunden.

Code:                   In Zwischenablage kopieren (nur IE)
2">

Wobei ich davon ausgegangen bin das alles zwischen <head> und </head> gelöscht wird. Hat leider nicht funktioniert.
array explode zerteilt mir meinen String anhand des Seperators ? Wie funktioniert das ganze aber wenn der Inhalt zwischen 2 verschiedenen Seperatoren liegt.


Gruß

Lonestar


5.

Da gibt es mehrere Möglichkeiten, du könntest z.B. an " Content//-->" exploden, das trifft sowohl für Start als auch Endtag zu. Die restlichen Zeichen könntest du mit [doc]substr[/doc] entfernen.

2. 2x exploden

3. und wahrscheinlich am sinnvollsten: Mit Regülären Ausdrücken arbeiten, aber das ist für einen Anfänger noch weitaus schwieriger, da du dir dann eine "neue" Sprache aneignen müsstest.


6.

Sorry, irgendwie fehlen mir die Grundlagen. Ich habe folgendes versucht.

Code:                   In Zwischenablage kopieren (nur IE)
3">

Nun sollte doch im String $teil1 alles sein was hinter "Content//-->" kommt. Momentan steht "Array" darin.
Sorry für meine dummen Anfängerfragen.


Gruß

Lonestar


7.

Guck dir mal die Doku zu [doc]explode[/doc] an. Es wird ein Array zurückgegeben. Lass dir dieses mit z.B. [doc]print_r, vardump[/doc] ausgeben. Wie man mit Arrays arbeitet, kannst du der Doku entnehmen.

Willst du es direkt einer Variablen zuweißen, hilft dir [doc]list[/doc]


8.

@johnpatcher

Dank dir erst mal für deine Geduld. Jetzt gehts erst mal. Habs erst mal über 2-faches explode gemacht.
Einziges Problem ist das es recht lange auf dem Webserver dauert bis er fertig ist.


Gruß

Lonestar


9.

explode arbeitet eigentlich blitzschnell ... Wie groß ist denn deine Textdatei ? Und zeig mal deinen Code, vielleicht hast du etwas anderes langsames drin !


10.

Ist eine normale Html-Seite. Lokal unter xampp läufts super, nur auf dem Webserver dauerts etwas länger.
Die Seite wird per:
Code:                   In Zwischenablage kopieren (nur IE)
4">

abgefangen und dann per explode zerlegt.

Gruß

Lonestar


Hier gehts zum Orginal Eintrag "Inhalt zwischen Kommentaren löschen" im Forum
 
phpforum.de | Impressum