zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden hier eine leichte: regex über seite bauen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 26.08.2006, 18:35
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.08.2006
Beiträge: 7
bernard_hinault befindet sich auf einem aufstrebenden Ast
Standard hier eine leichte: regex über seite bauen

tach leute hier im xhtml borard,


hmm habe eine echt schwere frage zu Regex., aber vieleicht koennt ihr hier helfen. Ich brauche ein PERL-regEX für ein phpBB-theme wie dieses hier. http://www.phpbb.de/viewtopic.php?t=129465&view=next
Ich muss einen harten job machen unter phpBB und ich muss mich in die reg Expressions von Perl einarbeiten.
Die Regex sind dafür gedacht, Teile aus der page source zu filtern.

gut wo ist die SETITE auf die wir einen REGEX brauchen - hier;zb.

http://www.phpbb.de/viewtopic.php?t=129465&view=next
jetzt einfach den quelltext anzeigen - un dann muss ich den REGEX bilden.

also fangen wir an die Teile:

[diese Teile habe ich aus http://www.phpbbdoctor.com/doc_tables.php ]

phpbb_categories
phpbb_forums Forums for your board.
phpbb_groups A group of users
phpbb_posts Posts for your board. Each post is part of a Topic.
phpbb_posts_text The text for the post
phpbb_topics Topics for your board. A Forum contains Topics. A Topic contains Posts.
phpbb_users Base user information, preference settings, and so on.
phpbb_user_group Cross-reference table between users and groups they belong to. Note that in the phpBB 2.x product every user is a member of at least one group.

hmm - das sollte stehen bleiben - bzw .das will ich dann eben parsen - dazu brauch ich die regex. danke furer die hilfe

ich freu mich auf einen Tipp

bernard hinault

ps - hier eine Demo
http://www.phpbb.de/viewtopic.php?t=129465&view=next

What Regular Expressions Are Exactly - Terminology
http://www.regular-expressions.info/tutorial.html


update: jupp hmmm keine Ahnung aber was meint ihr dazu.

einige Denkansätze, aber gerade der Text des Posts könnte sich als schwierig erweise, da er von keinerlei html/php codezeichen umrandet ist.

Zitat:
Code:
/<td width="\d+" align="\w+" valign="\w+" class=".*"><span class="name"><a name="\d+"></a><b>(.*)</b></span><br /><span class="postdetails">Mitglied<br /><br /><br />Anmeldedatum: (.*)<br />Beiträge: (.*)<br />/

Subpattern 1 liefert den Usernamen, Subpattern 2 das Anmeldedatum des Users und Nr 3 die Beitragsanzahl.

Code:
/\s+<td width="100%"><a href="viewtopic.php?p=\d+#\d+"><img src=".*" width="\d+" height="\d+" alt="Beitrag" title="Beitrag" border="\d+" /></a><span class="postdetails">Verfasst am: (.*)<span class="gen">&nbsp;</span>&nbsp; &nbsp;Titel: (.*)</span></td>/

Subpattern1 ist das Verfassungsdatum, Nr2 der Titel.

Bin gleich wieder weg, hab grad nicht genau überprüft ob Metazeichen & sonst. Zeichen vorhanden sind, die mit einem Backslash gecapt werden müssen.
Zitat:
^ $ + ? . * ( ) [ ] { } / \ |

jupp HTML/PHP Code ist ja immer voll davon, müsste man also noch rausnehmen.


freu mich von dir zu hoeren.

greetz

Geändert von bernard_hinault (27.08.2006 um 19:36 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 28.08.2006, 16:52
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
jupp HTML/PHP Code ist ja immer voll davon, müsste man also noch rausnehmen.


freu mich von dir zu hoeren.
nett gepastet...
Willst du das RegExp zum parsen von [ url=ziel]text[ /url],
verstehe ich dich da richtig?

Was willst du matchen, replacen oder überhaupt
was genau?

Geändert von nick (28.08.2006 um 17:05 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 28.08.2006, 17:24
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.08.2006
Beiträge: 7
bernard_hinault befindet sich auf einem aufstrebenden Ast
Standard

hi Nick

danke fuer die Antwort

Zitat:
Zitat von nick
nett gepastet...Willst du das RegExp zum parsen von [ url=ziel]text[ /url],
verstehe ich dich da richtig? Was willst du matchen, replacen oder überhaupt
was genau?
Die Regex ist dafür gedacht, Teile aus einer page source zu filtern. hier ein Beispiel http://www.phpbb.de/viewtopic.php?t=129465&view=next

Hintergrund: Ich will die Seite nicht über den Browser sondern über über ein perl-script lesen bzw. auslesen. DH. ich habe den source-Text schon hier lokal vorhanden. Nun muss er geparst werden. Der Quelltext zeigt was fuer mich interessant ist. http://www.phpbb.de/viewtopic.php?t=129465&view=next

- und dafür muss ich den REGEX bilden.

also interessieren tun mich Teile:

[diese Teile habe ich aus http://www.phpbbdoctor.com/doc_tables.php ]

phpbb_categories
phpbb_forums Forums for your board.
phpbb_groups A group of users
phpbb_posts Posts for your board. Each post is part of a Topic.
phpbb_posts_text The text for the post
phpbb_topics Topics for your board. A Forum contains Topics.
phpbb_users Base user information, preference settings, and so on.
product every user is a member of at least one group.
und der timestamp - den brauche ich auch noch...

hmm, das obenstehende, das sollte stehen bleiben wenn die Source geparst wurde wie z.b. von einer Seite wie dieser http://www.phpbb.de/viewtopic.php?t=129465&view=next bzw. das will ich dann eben parsen - dazu brauch ich die regex.


Nick ich freu mich auf einen Tipp -

bernard hinault


ps die Teile sollen anschliessen in eine Db geladen werden - in ein phpBB-db hier lokal. Da muss also später noch ein db-insert folgen...
ps - hier eine Demo http://www.phpbb.de/viewtopic.php?t=129465&view=next
wenn ich die Frage noch genauer stellen soll dann poste ich gerne noch einmal... Ich guck jetzt schon mal nach einem Weg die daten in eine Db zu laden...

Geändert von bernard_hinault (28.08.2006 um 17:35 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 28.08.2006, 18:03
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Ja, das ist jetzt mal gut erklärt.
Aber dein Code matched doch alles!
Was hast du dann für ein Regex-Problem?

Edit

Ok, das war nur eine Demo.
Ich hol dir das Regex.

Geändert von nick (28.08.2006 um 18:23 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 28.08.2006, 18:21
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.08.2006
Beiträge: 7
bernard_hinault befindet sich auf einem aufstrebenden Ast
Lächeln

hi Nick

danke fuer die Antwort - [du bist ja sowas von Schnell! ]

Zitat:
Zitat von nick
Ja, das ist jetzt mal gut erklärt. Aber dein Code matched doch alles! Was hast du dann für ein Regex-Problem? Edit

Sorry, das war ne Demo, moment ich hol dir das Regex.

der code, den ich oben reingestellt habe, wurde von mir selber nur ganz ganz kurz getestet,...

ich muss kurz Einkaufen gehen - (sonst bleibt die Küche kalt) guck später wieder hier rein. Freu mich auf eine Antwort von dir.



greetz
Bernard hinault.
Mit Zitat antworten
  #6 (permalink)  
Alt 28.08.2006, 18:25
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Ehm, dein Regex ist korrekt, du passt nur nicht auf,
dass Zeilenumbrüche mitgematched werden.

Setz überall, wo ein Umruch wäre einen . hin
und benutze den Modifier s

Edit

Ich meine die Zeilenumbrüche im Quelltext!
Wenn du den Rest mitmatchen willst, setze
einen . für die Zeilenumbrüche!

Geändert von nick (28.08.2006 um 18:34 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 28.08.2006, 18:45
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
/<td .*><span .*><a .*></a><b>(.*)</b></span><br /><span .*>Mitglied<br /><br /><br />Anmeldedatum: (.*)<br />Beiträge: (.*)<br />
.</span><br /></td>
.<td .*><table .*>
.<tr>
.<td .*><a href=".*"><img src=".*" .* title="Beitrag" .* /></a><span .*>Verfasst am: (.*)<span .*>&nbsp;</span>&nbsp; &nbsp;Titel: (.*)</span></td>
.<td .*><a href=".*"><img .* /></a>.</td>
.</tr>
.<tr>
.<td colspan="2"><hr /></td>
.</tr>
.<tr>
.<td colspan="2"><span .*>.*</span>
.</td>
.</tr>
.</table></td>
.</tr>/sU
Hier hast du das RegExp, klappt's?
PS: Entferne die zeilenumbrüche in dem regExp, die ich gemacht
habe. So wie jetzt gepostet, dient der Übersicht!

Edit

Moment, da isn Fehler.

Geändert von nick (28.08.2006 um 18:53 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 28.08.2006, 18:50
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Oder wie wär's damit!

Zitat:
/.*Mitglied.*Anmeldedatum: (.*)<br />Beiträge: (.*).Verfasst am: (.*).*Titel: (.*).<td .*><a href=".*"><img .* /></a>.</td>./sU
Edit

Ne sorry, der regExp hier ist falsch.
Der oben müsste aber hinhauen.

Geändert von nick (28.08.2006 um 18:56 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 28.08.2006, 20:21
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 26.08.2006
Beiträge: 7
bernard_hinault befindet sich auf einem aufstrebenden Ast
Standard

hi Nick danke fuer die Message und den regExp.


Zitat:
Zitat von nick
Oder wie wär's damit! Edit Ne sorry, der regExp hier ist falsch.Der oben müsste aber hinhauen.
ich guck mir das mal an. vielen Dank

greetz
BernardHinautl.

Update: was machen wir aber wenn das board die Verwendung von HTML erlaubt:
Dann schreibt jemand so etwas in seinen Post

[php]
....</span>
</td>
</tr>
</table></td>
</tr>
[php]

es macht mir noch etwas Bauchschmerzen wie ich das lösen soll mit dem DB eintrag; Apropos; für die Umsetzung in PHP :: also ich habe mir das mal angesehen hier

[URL="http://www.phpbar.de/w/Regul%C3%A4re_Ausdr%C3%BCcke"]


preg_match Zum Durchsuchen einer Zeichenkette
preg_match_all Zum Durchsuchen einer Zeichenkette
preg_replace Zum Durchsuchen und Ersetzen in Zeichenketten und Arrays
preg_replace_callback Spezielle Form von preg_replace()
preg_split Funktioniert wie explode(), mit dem Unterschied das man auch RegEx benutzen kann.
preg_quote Funktioniert wie addslashes(), bloß für RegEx-Zeichen
preg_grep Durchsucht ein Array und gibt die Suchergebnisse als Array zurück

[URL="http://www.phpbar.de/w/Regul%C3%A4re_Ausdr%C3%BCcke"]

für meine Aufgabe ists vielleicht das beste wenn ich keine ereg verwende.

ereg ist eine regular expression function, basierend auf dem POSIX regular expression standard. Preg (Based on PCRE) scheint aber passender zu sein: Es ist leistungsfähiger und oft schneller. Ausserdem wird POSIX zum PCECL - in absehbarer Zeit. Also sollte ich preg_match/replace ider substr verwenden, um meine Daten rauszusuchen.

Und ich sollte vielleicht PCRE modifiers verwenden Wir könnten den Inhalt des Files behandeln wie wenn er in einer Zeile daher käme. und das würde dann den Stress mit dem Zeielenumbruch verhindern.

Ich bin halt jetz an dem Punkt dass ich die geparsten Daten in ein phpBB-Datenbank einfügen sollte. Und hierfür brauche ich tipps und einen Ansatz.

vielen Dank für erste Infos.

greetz
bh

Geändert von bernard_hinault (29.08.2006 um 14:27 Uhr)
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 29.08.2006, 15:39
Benutzerbild von nick
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 01.08.2006
Ort: Rheinland-Pfalz
Beiträge: 386
nick befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Update: was machen wir aber wenn das board die Verwendung von HTML erlaubt:
Dann schreibt jemand so etwas in seinen Post

[php]
....</span>
</td>
</tr>
</table></td>
</tr>
[php]
WAS?? Das wurde im Quelltext dann längst in html übersetzt, Mann!
Diese bbcodes sind für den phpparser gedacht, das er sie beim Printen
in dem Quelltext ersetzt!

Zitiere deine letzte PM!

Zitat:
Update: was machen wir aber wenn das board die Verwendung von HTML erlaubt:
Dann schreibt jemand so etwas in seinen Post

hi

bin noch am nachdenken wie ich das in eine db laden kann

Ich bin halt jetz an dem Punkt dass ich die geparsten Daten in ein phpBB-Datenbank einfügen sollte. Und hierfür brauche ich tipps und einen Ansatz.


hast du noch eine idee hier?

habe den thread editiert.

greetz
bh
Du willst per RegExp von einem Forum sämtliche Posts
rausholen mit Title,
Autor etc. Und nun möchtest du diese Informationen in
eine DB speichern. Kann das sein, dass du von einem
Forum die ganzen threads klauen möchtest?
Oder möchtest du die Posts von deinem phpbb2 auf
ei vBulletin Board rüberspielen?
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Element ausserhalb seite positionieren, so daß keine scrollbar entsteht st-SaHiB CSS 5 20.07.2009 08:49
Nach klick auf menüpunkt soll die gewünschte seite in der seite erscheinen rs-web CSS 45 17.07.2009 14:16
Shtml auf jeder Seite einbinden - counter iVx Serveradministration und serverseitige Scripte 1 13.09.2007 17:31
Fixer Header (CSS Frame) und Sprung zu Anker auf dieser Seite Chico_wau CSS 2 14.05.2007 18:08
Navigation links und oben soll aktive Seite anzeigen Zischel CSS 2 16.02.2007 22:30


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:58 Uhr.