preg_match_all Problem: Compilation failed: unmatched parentheses

Dein Code gibt bei mir nach wie vor das gewünschte Ergebnis.
Also muss irgendwas anderes schief laufen.

Hast du es mal "hart" versucht also ohne den Text über ein formular zu senden.

So z.B.

PHP:
$pattern='/Angriff\s+([^\n]+)[\r|\n]+([[:print:]]+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([[:print:]]+)\s([\d|\||\(|\)]+)\s+K\d+\s+([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+|[^\s]+\s+[\d|.|\d]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)\s+(\d+\s+Tage?\s+[\d|:]+|[\d|:]+)/';

$data = "Angriff  	 Captain Iglo
207.6 Iglo (516|654) K65 	val Orden [~RA~]
[43] Burg Jureem (546|632) K65 	am 18.06. um 03:33 Uhr 	7:27:45";

$data2 = "Angriff 	Captain Iglo
303.3 Süd (520|724) K75 	ytterstone [~RA~]
Y-10-bei Freunden (561|507) K55 	am 21.06. um 07:05 Uhr 	3 Tage 10:59:26";

preg_match_all($pattern,$data,$match,PREG_SET_ORDER);

preg_match_all($pattern,$data2,$match2,PREG_SET_ORDER);

foreach($match as $val){
	foreach($val as $key => $val){
		echo "$key => $val<br>";
	}
}

echo "<br><br>";

foreach($match2 as $val){
	foreach($val as $key => $val){
		echo "$key => $val<br>";
	}
}
 
PHP:
$data= $_POST['attack'];

#$pattern='~Angriff[\t\s]+([^\n]+)
#([^\(\n]+)\(([0-9]+)\|([0-9]+)\)[\t\s]+K[0-9]{2}([\W]+)\[([^\]]+)\]
#([^\(\n]+)\(([0-9]+)\|([0-9]+)\)[\t\s]+K[0-9]{2}([\W]+)[\t\s]+([0-9:]+)~is';

$pattern='/Angriff\s+([^\n]+)[\r|\n]+([[:print:]]+)\s+([\d|\||\(|\)]+)\s+K\d+\s+([^\[]+)\s+\[([^\]]+)\][\r|\n]+([[:print:]]+)\s([\d|\||\(|\)]+)\s+K\d+\s+([^\s]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+|[^\s]+\s+[\d|.|\d]+\s+[^\s]+\s+[\d|:|\d]+\s+[^\s]+)\s+(\d+\s+Tage?\s+[\d|:]+|[\d|:]+)/';

preg_match_all($pattern,$data,$match,PREG_SET_ORDER);
echo "<pre>".print_r($match,true)."</pre>";


so sieht bei mir die Sache aus. PHP5.2.11 auf dem server.
 
Das ist schön ;) beantwortet aber nicht meine Frage ob du es mal ohne Formular probiert hast, womit ich nur herausfinden wollte ob vielleicht bei der Übertragung was schief läuft.

Den zweiten Parameter bei print_r kannst du dir btw. sparen, der macht an der Stelle keinen Sinn.

If you would like to capture the output of print_r(), use the return parameter. When this parameter is set to TRUE, print_r() will return the information rather than print it.
PHP:
$results = print_r($b, true); // $results now contains output from print_r
 
Okay, also ich habe nun die daten direk übergeben.

Also als Variable.

EDIT:

Okay, fehler gefunden, man sollte auch ÜÄÖüäö zulassen ;)
 
Zuletzt bearbeitet:
Zurück