php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.08.2005, 01:02  
Benutzer
 
Registriert seit: 02.08.2003
Beiträge: 93
Schaelle
Schaelle eine Nachricht über ICQ schicken
Standard komplexeres Regex Problem

Hallo,

ich will folgenden String
Code:
10.87.84.126 Angreifen	Dackel 1	Daddy	MATUX
per PHP wie folgt auseinander Fitzeln
ip = 10.87.84.126
name = Dackel 1 (kann mehre Teilstrings wie hier enthalten)
name2 = Daddy
name3 = MATUX (optional, heißt muss nicht immer da sein)

Bisher habe ich nur die IP, danach wollte ich eine Abfrage machen, ob mind. 3 Teilstrings da sind, und dann dieses herraus holen.

Doch da hackt es.

Achja, name3 kann auch Sonderzeichen alá },],. enthalten.

Mein Coder erst einmal:
Code:
				$temp = preg_replace('/\s{2,}/', '', $value);	// Mehr als 1 Leerzeichen entefernen
				$temp = preg_replace('/\t/', ' ', $temp);	// \t durch ein Leerzeichen ersetzen
				$temp = preg_replace('/ Angreifen/', '', $temp); // Den Text 'angreifen' entfernen

				// ip raus suchen und entfernen	
				preg_match('/10.\d{1,2}.\d{1,3}.\d{1,3}/', $temp, $_output['ip']);
				$_output['ip'] =  $_output['ip'][0];
				$temp = preg_replace('/'.$_output['ip'].' /', '', $temp);

				// wenn mehr als 3 Teil Strings dann ist es ein User mitm Cluster

				if(preg_match('/ \w+|\w+ /', $temp) > 2) {
					// cluster suchen und entfernen & trim
					$_output['cluster'] = strrchr($temp, ' ');
					$temp = preg_replace('/'.preg_quote($_output['cluster']).'/', '', $temp);
				}
Es erkennt nicht die richtige Anzahl der Teil Strings in der letzen If-Clausel .

Kann mir jemand dabei helfen?

Grüße,
Schaelle
__________________
PHP-Noob (?) _AT_ work
Schaelle ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.08.2005, 01:15  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

wenn name aus mehreren strings bestehen kann und name3 optional ist, was ist dann hier:
Code:
10.87.84.126 Angreifen   Dackel   Daddy   MATUX
jetzt gibt es die möglichkeit, dass es so ist:
name=Dackel
name2=Daddy
name3=MATUX

oder

name = Dackel Daddy
name2 = MATUX

...
Buhmann ist offline  
Alt 28.08.2005, 01:28  
Gast
 
Beiträge: n/a
Standard

Zitat:
10.87.84.126 Angreifen Dackel 1 Daddy MATUX
Wenn man nicht so schlamperhaft die Daten ablegen würde, müsste man nicht später rumzaubern.
Sorry, ist aber so.
 
Alt 28.08.2005, 20:06  
Benutzer
 
Registriert seit: 02.08.2003
Beiträge: 93
Schaelle
Schaelle eine Nachricht über ICQ schicken
Standard

Buhmann: Nein, nur name2 kann aus mehren Strings bestehen, name1 und name3 beliben dennoch da. (name3 gegf.).

CIX88: So ist es hier nunmal :/
__________________
PHP-Noob (?) _AT_ work
Schaelle ist offline  
Alt 28.08.2005, 20:31  
Erfahrener Benutzer
 
Registriert seit: 09.11.2004
Beiträge: 194
greenrover
greenrover eine Nachricht über ICQ schicken greenrover eine Nachricht über Yahoo! schicken
Standard

womit sind dann die Strings getrennt??? Mit TAB ???

Code:
list($ip, $name1, $name2, $name3)=preg_split('\t\n', $input );
greenrover ist offline  
Alt 28.08.2005, 21:24  
Gast
 
Beiträge: n/a
Standard

Zitat:
list($ip, $name1, $name2, $name3)=preg_split('\t\n', $input );
Beim Einsatz von preg_split() sollte man auch Delimeter einsetzen, sonst geht nicht viel.
 
Alt 28.08.2005, 22:09  
Erfahrener Benutzer
 
Registriert seit: 09.11.2004
Beiträge: 194
greenrover
greenrover eine Nachricht über ICQ schicken greenrover eine Nachricht über Yahoo! schicken
Standard

hä?!?!?! das \t\n ist doch ein dilimiter ?? und zwar für den TABULATOR oder was willst du jetzt ???
greenrover ist offline  
Alt 28.08.2005, 22:12  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

delimiter dienen zur abgrenzung des eigentlichen regulären ausdrucks von rest, von den modifiern ... # ! + ~ / = % ...
__________________
derHund ist offline  
Alt 28.08.2005, 22:27  
Erfahrener Benutzer
 
Registriert seit: 09.11.2004
Beiträge: 194
greenrover
greenrover eine Nachricht über ICQ schicken greenrover eine Nachricht über Yahoo! schicken
Standard

kk dann verbesser mich mal.
greenrover ist offline  
Alt 28.08.2005, 23:19  
Gast
 
Beiträge: n/a
Standard

Da gibt es nicht viel zu verbessern, weil schon die Ausgangsquelle:

10.87.84.126 Angreifen Dackel 1 Daddy MATUX

in einen sehr ungünstigen Format vorliegt.
Alle Versuche hier mit Regexp zu fummeln, werden einige Kopfschmerzen verursachen

Hier müsste ein Trennzeichen rein, damit auch die Werte mit Leerzeichen und TABs etc. geschreiben werden können, und somit man besser diese oder ähnliche Zeilen teilen kann.

Alles andere hat derHund ja schon geschrieben und der Rest ist Zeitverschwendung und uneffektiv vorgeplant.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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.

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array sortieren mit regex Lupi PHP Tipps 2008 3 21.07.2008 15:17
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Problem mit dem Escapen in einem reg. Ausdruck ??? Frank Burian HTML, Usability und Barrierefreiheit 4 07.07.2006 00:02
Problem mit regex BLiNK PHP Tipps 2006 19 25.03.2006 13:32
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
Problem mit zu langen String -> regex PHP Tipps 2006 1 25.01.2006 17:38
[Erledigt] Problem mit einem Regex PHP-Fortgeschrittene 4 23.01.2006 09:34
[Erledigt] Regex Problem. PHP Tipps 2007 14 07.11.2005 15:24
Problem mit RegEx freq.9 PHP Tipps 2005-2 3 29.08.2005 13:32
Regex Problem PHP Tipps 2005-2 8 14.08.2005 18:40
Problem mit regex PHP Tipps 2004 1 09.09.2004 10:00
[Erledigt] regex problem PHP Tipps 2004 9 04.09.2004 16:46
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit eine REGEX! PHP-Fortgeschrittene 7 04.06.2004 17:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
regex tabulator, regular expression tabulator entfernen php, regex tab, \\t durch 1 leerzeichen ersetzen, php ip aus string holen, preg_replace lange zahlen, regex tabulator als trennzeichen, preg_split tabulator, php preg_replace ip entfernen, php mit str_replace tabulatoren entfernen, php ip aus string ausschneiden regex, php preg_split tabulator als trennzeichen, php regular expression tab, preg_split erkennt keine umlaute, regex für icq php, namen aus string holen regex php, regex komplex definition, regex ip php, tabulatoren entfernen regexp php, tab entfernen regex

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.