 |
11.07.2008, 06:40
| Nach oben
#1 | | Windows Nutzer
Registriert seit: 30.08.2007
Beiträge: 11
| textfeld mit preg_match_all() durchsuchen
hi erst mal und einen wunderschönen guten morgen.
flgende sache. ich schicke per $_POST ein textfeld ab. dieses textfeld soll nach verschiedenen schlüsselwörtern durchsucht werden. der inhalt des textfeldes ist vom aufbau her immer gleich(bis auf ein paar kleinigkeiten die ab und an mal nicht da sind). bisher hab ich das folgendermaßen gemacht bin damit aber nicht wirklich zufrieden. PHP-Code: if(isset($_POST['send']) === TRUE AND isset($_REQUEST['action']) == 'read') {
$spio_report_nummmer = preg_match_all('°\(#(.*)\)°im', $textfield, $spio_report_nummer_match); $spio_report_zeit = preg_match_all('°- ([0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]) / ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])°im', $textfield, $spio_report_zeit_match); $spio_report_name = preg_match_all('°Planetenname:(.*)\[ Klasse°im', $textfield, $spio_report_name_match); $spio_report_koordinaten = preg_match_all('°Koordinaten:(.*:((.*:((.*)°im', $textfield, $spio_report_koordinaten_match); $spio_report_besitzer = preg_match_all('°Besitzer:(.*)°im', $textfield, $spio_report_besitzer_match); $spio_report_durchmesser = preg_match_all('°Durchmesser:(.*)km°im', $textfield, $spio_report_durchmesser_match); $spio_report_groesse = preg_match_all('°Groesse:(.*)°im', $textfield, $spio_report_groesse_match); $spio_report_kategorie = preg_match_all('°Kategorie:(.*)°', $textfield, $spio_report_kategorie_match); $spio_report_temperatur = preg_match_all('°Temperatur:(.*)°', $textfield, $spio_report_temperatur_match); $spio_report_eisen = preg_match_all('°Eisen:(.*)°', $textfield, $spio_report_eisen_match); $spio_report_lutinum = preg_match_all('°Lutinum:(.*)°', $textfield, $spio_report_lutinum_match); $spio_report_wasser = preg_match_all('°Wasser:(.*)°', $textfield, $spio_report_wasser_match); $spio_report_wasserstoff = preg_match_all('°Wasserstoff:(.*)°', $textfield, $spio_report_wasserstoff_match); $spio_report_kommandozentrale = preg_match_all('°Kommandozentrale(.*)°', $textfield, $spio_report_kommandozentrale_match); $spio_report_forschungszentrum = preg_match_all('°Forschungszentrum(.*)°', $textfield, $spio_report_forschungszentrum_match); $spio_report_eisenmine = preg_match_all('°Eisenmine(.*)°', $textfield, $spio_report_eisenmine_match); $spio_report_lutinumraffinerie = preg_match_all('°Lutinumraffinerie(.*)°', $textfield, $spio_report_lutinumraffinerie_match); $spio_report_bohrturm = preg_match_all('°Bohrturm(.*)°', $textfield, $spio_report_bohrturm_match); $spio_report_chemiefabrik = preg_match_all('°Chemiefabrik(.*)°', $textfield, $spio_report_chemiefabrik_match); $spio_report_erweiterte_chemiefabrik = preg_match_all('°Erweiterte Chemiefabrik(.*)°', $textfield, $spio_report_erweiterte_chemiefabrik_match); $spio_report_eisenspeicher = preg_match_all('°Eisenspeicher(.*)°', $textfield, $spio_report_eisenspeicher_match); $spio_report_lutinumspeicher = preg_match_all('°Lutinumspeicher(.*)°', $textfield, $spio_report_lutinumspeicher_match); $spio_report_wasserspeicher = preg_match_all('°Wasserspeicher(.*)°', $textfield, $spio_report_wasserspeicher_match); $spio_report_wasserstoffspeicher = preg_match_all('°Wasserstoffspeicher(.*)°', $textfield, $spio_report_wasserstoffspeicher_match); $spio_report_schiffsfabrik = preg_match_all('°Schiffsfabrik(.*)°', $textfield, $spio_report_schiffsfabrik_match); $spio_report_orbitale_verteidigungsstation = preg_match_all('°Orbitale Verteidigungsstation(.*)°', $textfield, $spio_report_orbitale_verteidigungsstation_match); $spio_report_recyclingzentrum = preg_match_all('°Recyclingzentrum(.*)°', $textfield, $spio_report_recyclingzentrum_match); $spio_report_planetarer_schild = preg_match_all('°Planetarer Schild(.*)°', $textfield, $spio_report_planetarer_schild_match); $spio_report_fusionsreaktor = preg_match_all('°Fusionsreaktor(.*)°', $textfield, $spio_report_fusionsreaktor_match); $spio_report_ringweltgenerator = preg_match_all('°Ringweltgenerator(.*)°', $textfield, $spio_report_ringweltgenerator_match); $spio_report_verbrennungsantrieb = preg_match_all('°Verbrennungsantrieb(.*)°', $textfield, $spio_report_verbrennungsantrieb_match); $spio_report_ionenantrieb = preg_match_all('°Ionenantrieb(.*)°', $textfield, $spio_report_ionenantrieb_match); $spio_report_raumkruemmungsantrieb = preg_match_all('°Raumkrümmungsantrieb(.*)°', $textfield, $spio_report_raumkruemmungsantrieb_match); $spio_report_ionisation = preg_match_all('°Ionisation(.*)°', $textfield, $spio_report_ionisation_match); $spio_report_energiebuendelung = preg_match_all('°Energiebündelung(.*)°', $textfield, $spio_report_energiebuendelung_match); $spio_report_explosivgeschosse = preg_match_all('°Explosivgeschosse(.*)°', $textfield, $spio_report_explosivgeschosse_match); $spio_report_spionagetechnologie = preg_match_all('°Spionagetechnologie(.*)°', $textfield, $spio_report_spionagetechnologie_match); $spio_report_erweiterte_schiffspanzerung = preg_match_all('°Erweiterte Schiffspanzerung(.*)°', $textfield, $spio_report_erweiterte_schiffspanzerung_match); $spio_report_erhoehte_ladekapazitaet = preg_match_all('°Erhöhte Ladekapazität(.*)°', $textfield, $spio_report_erhoehte_ladekapazitaet_match); $spio_report_nano_technologie = preg_match_all('°Nano Technologie(.*)°', $textfield, $spio_report_nano_technologie_match); $spio_report_erweiterte_schiffstechnologien = preg_match_all('°Erweiterte Schiffstechnologien(.*)°', $textfield, $spio_report_erweiterte_schiffstechnologien_match); $spio_report_ringwelt_technologie = preg_match_all('°Ringwelt Technologie(.*)°', $textfield, $spio_report_ringwelt_technologie_match); $spio_report_planeten_verwaltung = preg_match_all('°Planeten Verwaltung(.*)°', $textfield, $spio_report_planeten_verwaltung_match); $spio_report_subraum_kommunikation = preg_match_all('°Subraum Kommunikation(.*)°', $textfield, $spio_report_subraum_kommunikation_match);
$spio_report_zeit_match1 = explode('.', $spio_report_zeit_match[1][0]); $spio_report_zeit_match1 = $spio_report_zeit_match1[2].'-'.$spio_report_zeit_match1[1].'-'.$spio_report_zeit_match1[0]; /** * hier kommt dann noch ein mysql_query der dann das ergebnis bzw variablen inhalte in die db schreibt inclusive noch ein paar sachen punkto fehler ausgaben etc */ exit(); }
jetzt meine frage...wie könnte man das geschickter regeln??? per foreach() ?
die richtigen ergbnisse liefert er mir ja. quasi das was ich brauche. wenn etwas nicht da ist dann haut der mir nen notice raus (undifined ofset in line...) aber den kann man ja abfangen iss ja net so das ding
bzw einfach am kopf der datei error_reporting(0); setzen. iss zwar unsauber aber geht auch *ggg*
in diesem sinne einen schönne freitag morgen
__________________
soo long...
//*Linux is like a wigwam, no gates, no windows and an Apache inside...*//
Gutta cavat lapidem, non vi sed saepe cadendo.
Patriae inserviendo consumer.
Unterwerfung ist ein Geschenk, geboren aus der Staerke, genaehrt durch Vertrauen, erhalten durch Respekt und Achtung. Wenn das Wort nicht schlaegt, dann schlaegt auch nicht der Stock! (Sokrates)
Geändert von Sourceforge (11.07.2008 um 06:43 Uhr).
|
| |
11.07.2008, 12:04
| Nach oben
#2 | | Lutz
Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Folgendes sollte es eigentlich tun: PHP-Code: $arrayRegEx = array ('nummer' => '°\(#(.*)\)°im',
'zeit' => '°- ([0-9][0-9].[0-9][0-9].[0-9][0-9][0-9][0-9]) / ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])°im',
'name' => '°Planetenname:(.*)\[ Klasse°im',
'koordinaten' => '°Koordinaten:(.*:((.*:((.*)°im',
'besitzer' => '°Besitzer:(.*)°im',
'durchmesser' => '°Durchmesser:(.*)km°im'
/* etc */
);
if (isset($_POST['send']) === TRUE
AND isset($_REQUEST['action']) == 'read'
)
{
foreach ($arrayRegEx AS $stringVariableName => $stringRegEx)
{
$stringReport = 'spio_report_'.$stringVariableName;
$stringMatch = $stringReport.'_match';
$$stringReport = preg_match_all ($stringRegEx,
$textfeld,
$$stringMatch
);
}
$spio_report_zeit_match1 = explode('.', $spio_report_zeit_match[1][0]);
$spio_report_zeit_match1 = $spio_report_zeit_match1[2].'-'.$spio_report_zeit_match1[1].'-'.$spio_report_zeit_match1[0];
/**
* hier kommt dann noch ein mysql_query der dann das ergebnis bzw variablen inhalte in die db schreibt inclusive noch ein paar sachen punkto fehler ausgaben etc
*/
exit();
}
Ich gebe zwar keine Garantie, aber eigentlich sollte das so hinhauen. Allerdings solltest du dir nochmal das Thema RegEx anschauen, wenn ich sehe, wie dein RegEx zum Finden der Zeit aussieht...
Btw: Pass auf, ob das, was du da machst nicht in den AGBs des Spiels verboten ist!
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| |
11.07.2008, 13:33
| Nach oben
#3 | | Jann Hendrik Bekaan
Registriert seit: 02.12.2004 Ort: Wildeshausen
Beiträge: 2.214
| Zitat:
Zitat von MrNiceGuy Btw: Pass auf, ob das, was du da machst nicht in den AGBs des Spiels verboten ist! | Nicht, wenn er das Spiel programmiert.... |
| |
11.07.2008, 15:28
| Nach oben
#4 | | Lutz
Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Ob er dann eine solche Frage stellen würde, wenn er ein ganzes Browsergame schreiben kann?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| |
11.07.2008, 18:08
| Nach oben
#5 | | Windows Nutzer
Registriert seit: 30.08.2007
Beiträge: 11
|
vorm kopf klatsch.....ich sollte mehr schlafen und weniger kaffee trinken Zitat:
Zitat von MrNiceGuy ...Allerdings solltest du dir nochmal das Thema RegEx anschauen, wenn ich sehe, wie dein RegEx zum Finden der Zeit aussieht...
Btw: Pass auf, ob das, was du da machst nicht in den AGBs des Spiels verboten ist! | ich HASSE regex.....aber der iss einfach und tut das was ich will *ggg* muss ja das rad net neu erfinden. aber mal schaun....
nee iss net verboten. hab extra nachgefragt. Zitat:
Zitat von Jann Hendrik Zitat:
Zitat von MrNiceGuy Btw: Pass auf, ob das, was du da machst nicht in den AGBs des Spiels verboten ist! | Nicht, wenn er das Spiel programmiert....  | würde ich gerne aber kaum zeit dafür *ggg* ausserdem iss das schon fertig. Zitat:
Zitat von MrNiceGuy Ob er dann eine solche Frage stellen würde, wenn er ein ganzes Browsergame schreiben kann?  | jap. kennst mich doch oder??? manchmal sieht man(n) den wald vor lauter bäumen nicht. aber danke die oh du großer php guru..*fg*
__________________
soo long...
//*Linux is like a wigwam, no gates, no windows and an Apache inside...*//
Gutta cavat lapidem, non vi sed saepe cadendo.
Patriae inserviendo consumer.
Unterwerfung ist ein Geschenk, geboren aus der Staerke, genaehrt durch Vertrauen, erhalten durch Respekt und Achtung. Wenn das Wort nicht schlaegt, dann schlaegt auch nicht der Stock! (Sokrates)
|
| | |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | | | | Themen-Optionen | Thema durchsuchen | | | |
Forumregeln
| Es ist dir nicht erlaubt, neue Themen zu verfassen. Es ist dir nicht erlaubt, auf Beiträge zu antworten. Es ist dir nicht erlaubt, Anhänge hochzuladen. Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten. HTML-Code ist aus. | | | Alle Zeitangaben in WEZ +2. Es ist jetzt 19:51 Uhr.
|