Tausenderpunkt entfernen

Allytools

Grünschnabel
Hallo,

ich hab da mal wieder ein Problem, bei dem ich nicht weiter komme.

Ich habe ein Textfeld, in dem ich mit Copy&Paste folgendes eingebe:
Code:
Verteidigung
Raketenwerfer 	2.000 	133 	1.300 	700 	650 	100 	466 	231 	1.000 	6.580
Leichtes Lasergeschütz 	1.500 	21 	1.300 	700 	525 	110 	350 	100 	1.000 	5.606

In meinem Script sollen nun alle Tausenderpunkte (rot dargestellt) entfernt werden.

PHP:
if(!isset($_POST['text'])){
	$data[body].='
		<form name="form1" method="post" action="">
		  <p style="font-size: 24px; font-weight: bold;">Imperium&uuml;bersicht eintragen lassen </p>
		  <p>F&uuml;gen sie in das Textfeld die gesammte <em>(STRG+A)</em> Imperiums&uuml;bersicht ein <em>(STRG+V)</em> (egal ob Monde oder Planeten) </p>
		  <p>
			<textarea name="text" style="width:500px;height:70px;" id="text"></textarea><br />
			<input type="submit" name="Submit" value="Senden">
		  </p>
		  <p>
			<input name="fleet" type="checkbox" id="fleet" value="1">
		  Flotte eintragen 
		  (
		  <input name="add" type="checkbox" id="add" value="checkbox">
		  zu bestehender Flotte addieren)  </p>
		  <p>
			<input name="forschung" type="checkbox" id="forschung" value="checkbox" checked>
		  Forschung eintragen </p>
		  <p>Achtung: <strong>Planeten die gel&ouml;scht wurden</strong> m&uuml;ssen h&auml;ndisch gel&ouml;scht werden NUR IMPERIUMS&Uuml;BERSICHT VERWENDEN </p>
		  <p>Wenn sie bereits einige Daten h&auml;ndisch eingegeben haben ist es nicht immer m&ouml;glich dies korrekt zu aktualisieren, wenn bei einzelnen Planeten Feher auftauchen l&ouml;schen sie diese einfach einmal und f&uuml;hren sie dieses Tool nochmals aus.</p>
		  </form>';
}else{
	$data[body].='
		<h2>Ihre Daten wurden bearbeitet</h2>
		<p><br />
		<br />
		<a href="'.$dir.'?screen=account_planeten">Zur Planeten Übersicht</a></p>';

	
	//echo urlencode($_POST['text']);
	
	$daten=explode("%0D%0A", urlencode($_POST['text']));
	foreach($daten as $part){

		if(strstr($part, "+%09")){
			$daten_2=explode("+%09", $part);
		}elseif(strstr($part, "%09")){
			$daten_2=explode("%09", $part);
		}elseif(strstr($part, "Name+") or strstr($part, "Koordinaten+")){
			$daten_2=explode("+", $part);
		}else{
			$daten_2=explode("++", $part);
		};
		
		for($i=1;  $i<10; $i++){
			if(isset($daten_2[$i])){
				$wert=explode('+',$daten_2[$i]);
				//echo $daten_2[0].'<br>';
				if($daten_2[0]!='Name' && $daten_2[0]!='Koordinaten'){
					$last = array_pop($wert);
					if(isset($last) && $last > 0){
						$einfuegen=str_replace('(','',str_replace(')','',$last));
					}else{
						$einfuegen=str_replace('(','',str_replace(')','',$wert[0]));
					};
					$array[$i][$daten_2[0]]=preg_replace("!-!", '0', strip_tags(urldecode($einfuegen)));
				}else{
					//echo $daten_2[$i].'<br>';
					$array[$i][$daten_2[0]]=preg_replace("!-!", '0', strip_tags(str_replace('[','', str_replace(']','', urldecode($daten_2[$i])))));
				};
			};
		};

danach sollen die Daten einer DB übergegen werden.

Nun, mein Problem ist nun ich habe keine Ahnung wo ich in diesem Teil des Scriptes etwas verändern muss und auch nicht was. Es kann ja eigendlich nur in diesem Teil sein:
PHP:
		for($i=1;  $i<10; $i++){
			if(isset($daten_2[$i])){
				$wert=explode('+',$daten_2[$i]);
				//echo $daten_2[0].'<br>';
				if($daten_2[0]!='Name' && $daten_2[0]!='Koordinaten'){
					$last = array_pop($wert);
					if(isset($last) && $last > 0){
						$einfuegen=str_replace('(','',str_replace(')','',$last));
					}else{
						$einfuegen=str_replace('(','',str_replace(')','',$wert[0]));
					};
					$array[$i][$daten_2[0]]=preg_replace("!-!", '0', strip_tags(urldecode($einfuegen)));
				}else{
					//echo $daten_2[$i].'<br>';
					$array[$i][$daten_2[0]]=preg_replace("!-!", '0', strip_tags(str_replace('[','', str_replace(']','', urldecode($daten_2[$i])))));
				};
			};
		};

Ganz recht, ich habe das Script nicht geschrieben. Ich habe es vor zwei Tagen bekommen, da der Autor keine Zeit hat es anzupassen. Und seit dem versuche ich es verzweifelt.

Über schnelle Hilfe währe ich euch sehr Dankbar.
 
quick'n'dirty Variante:
PHP:
$string=preg_replace("#(\\d+)\.(\\d{3})#","$1$2",$string);

Also wird
PHP:
    $daten=explode("%0D%0A", urlencode($_POST['text']));
zu
PHP:
 $daten=explode("%0D%0A", urlencode(preg_replace("#(\\d+)\.(\\d{3})#","$1$2",$_POST['text'])));
, so fern ich denn den Quellcode richtig verstanden habe :)
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.

Funktioniert echt gut.

Wünsche allen ein schönes Weihnachtsfest und einen Guten Rutsch ins neue Jahr.
 
PHP:
$daten=explode("%0D%0A", urlencode(str_replace(".","",$_POST['text'])));
Dieser Befehl entfernt allerdings alle ( ! ) Punkte im String.
 
Zurück