Also ich hab folgendes vor..
ich kenne mich jetzt ziemlich gut mit RegExp aus.. jetzt will ich dass ganze auch in PHP anwenden können..
Aber iwie funktioniert das ganze noch nicht richtig..
Im Grunde genommen soll alles so ablaufen:
1. Ich gebe in das Formularfeld "Formel" die Suchformel ein
2. Ich gebe in das Textfeld meine zu durchsuchenden Text ein.
3. Reg Ex sucht mir alle Treffer raus und listet sie mir auf..
kann mir da jemand helfen? Danke =)
Reguläre Ausdrücke in PHP
-
-
preg_match
Edit: Alles was du brauchst
-
-
Das tut nicht funktionieren.. hier der Code
PHP
Alles anzeigen<?php $subject = $_POST['text']; $pattern = $_POST['formel']; preg_match_all($pattern , $subject ,$matches); print_r($matches); ?>
Hier die Fehlermeldungen:
Die Formeln hab ich nur zur Veranschaulichung nochmal reingeschrieben.. bzw den Text den es durchsuchen soll.
Bitte um Hilfe. MfG XantypiaxD
-
Regular Expressions müssen von Delimitern Begrenzt sein.
Entweder muss dein Suchausdruck direkt in deinem Suchfeld begrenzt werden im Sinne von
oder du hängst über das Script die Delimiter ran, wenn du diese nicht in der Suchmaske miteingeben wilst:
-
Schonmal Danke.. aber so ganz funktioniert es noch nicht wie ich dass will xP
Als Ergebnis gibt es jetzt folgendes aus:
Array ( [0] => Array ( [0] => d ) )
wenn ich bei formel: [\w]
und beim Text: d
z.B. eingebe
aber es soll dann als Ergebnis : d anzeigen .. in meinem Fall
-
Das ist ein Array und kannst du ganz bequem über ein foreach() ausgeben.
-
könntest du mir so was vllt passend zu meinem script formulieren?
Danke =) denn das kapier ich nich xP
Thanks
hier nochmal der Code
-
-
Jetzt schreibts mir die ganze Zeit "Array" hinters Ergebnis.. egal was ich mache
-
-
schonmal danke.. funktioniert soweit.. aber etwas geht noch nicht..
und zwar.. wenn ich ins Formelfeld z.B. [\w] eingebe, müsste er ja
wenn ich ins Textfeld "a" (ohne die "" geschrieben) finden.. oder?
das macht er aber nicht...
hier mal der komplette quellcode:
PHP
Alles anzeigen<?php $subject = $_POST['text']; $pattern = $_POST['formel']; $pattern = '#'.$pattern.'#'; preg_match_all($pattern , $subject ,$matches); echo 'Ergebnisse:'; foreach($matches as $x) { if(is_array($x)) { foreach($x as $y) { echo $y.'<br />'."\r\n"; } } else { echo $x.'<br />'."\r\n"; } } ?>
HTML
Alles anzeigen<html> <body bgcolor="orange"> <table width="800px" align="center" border="0"> <tr> <td><h3 align="center">RegEX - Formular by O.K.</h3></td> </tr> </table> <table width="600px" align="center" border="0"> <form method="post" action="index2.php"> <tr> <td>Suchausdruck:</td> <td><input type="text" size="100" name="formel"></td> </tr> <tr> <td>Der Text:</td> <td><textarea cols="40" rows="15" name="text"></textarea></td> </tr> <tr> <td></td> <td><input type="submit" value="Überprüfen" name="submit"></td> </tr> </form> </table> </body> </html>
-
Dein HTML Code ist ja grauslig.
Warum brauchst du eine Tabelle um den Schriftzug darzustellen?Mach das doch einfach so:
Aussenrahmen per Div mit Breite 800px um alles rum und dann einfach den h3 Tag rein.
Das Formular ginge auch mit CSS und einfachen HTML, das heisst ohne Tabellen.
Siehe mal hier den Code: http://www.beschallungen-sojic.ch/?src=kontakt -
Dein HTML Code ist ja grauslig.
xD ich weiss aber darum gehts ja nicht... es geht darum warum er die Formel nicht richtig erkennt..
-
#push
Weiss es keiner?
Manche Formel funktionieren nicht
z.B. wenn ich \d
oder \w oder so eintippe
wenn ich es so [\d] eintippe.. funktionierts auch nicht
nur so Formeln wie.. [a-zA-Z] oder [0-9]
Pls Help
-
#push
Weiss es keiner?
Manche Formel funktionieren nicht
z.B. wenn ich \d
oder \w oder so eintippe
wenn ich es so [\d] eintippe.. funktionierts auch nicht
nur so Formeln wie.. [a-zA-Z] oder [0-9]
Pls Help
Ich denke du hast Erfahrung mit Regular Expressions?
Das kann nicht sein.
[\d], [0-9], [123456789] sind alle komplett äquivalent.
Warum probierst du nicht einfach aus wo der Fehler ist?
Setzte die Errorausgabe auf TRUE und gucke was ist, irgendwas wird er ja sagen. Oder probiere es mit anderen Werten.Lass dir die Ergebnisse Formlos ohne die Schleife per print_r() ausgeben, irgendwo wirst du den Fehler ja finden.... =/