Aus Zeichenkette raussuchen

h4dhunTer

Erfahrenes Mitglied
Hallo,
ich bekomme per POST diesen Text übergeben:

sort1[]=allgemein-news,sort1[]=forum,sort2[]=was-lauft,sort2[]=next-sendung,sort2[]=rotation

Nun brauche ich sort1 und allgemein-news - dieses soll in die Datenbank eingetragen werden mit position=1. Weiter geht es, dass sort1 und forum mit der position=2 eingetragen werden soll.

Es können jeder Zeit mehr dazu kommen, also soll PHP selber erkennen, wie viele es sind und diese dann mit der Position eingetragen werden ($position++)

Leider weiß ich nicht, wonach ich bei Google und co. suchen soll. :confused:
 
Hallo,
ich habe nun ein bisschen rumprobiert:

PHP:
$array = $_POST['sort'];
$array = preg_replace('|sort(.*)\[\]=(.*)|Uism','$1=$2',$array);
Nun bekomme ich
1=allgemein-news,1=forum,2=was-lauft,2=next-sendung,2=rotation
Jetzt brauche ich nur solange die Zeichenkette abrufen bis nichts mehr drinne ist. Dabei brauche ich 1 als sort und allgemeine-news als box.
 
Probier mal Folgendes:
PHP:
function url_parse_query( $query, $arg_separator='&', $arg_assignment='=' )
{
	$retVal = array();
	$args = explode($arg_separator, $query);
	foreach( $args as $i => $arg ) {
		if( ($pos = strpos($arg, $arg_assignment)) !== false ) {
			$key = substr($arg, 0, $pos);
			$value = substr($arg, $pos+1);
			$args[$i] = rawurlencode($key).'='.rawurlencode($value);
		}
	}
	parse_str(implode('&', $args), $retVal);
	return $retVal;
}

$str = 'sort1[]=allgemein-news,sort1[]=forum,sort2[]=was-lauft,sort2[]=next-sendung,sort2[]=rotation';
var_dump(url_parse_query($str, ','));
 
Hallo,
danke für die Antwort. Ich habe es aber inzwischen anders gelöst. Vielleicht nicht so schön, aber es passiert das, was ich brauche.

PHP:
<?php
$array = $_POST['sort'];
$array = preg_replace('|sort(.*)\[\]=(.*)|Uism','$1=$2',$array);
$array=explode(",",$array);

foreach ($array as $val)
{
  $sort = substr($val, 0,1);
  $box = preg_replace('|(.*)=(.*)|Uism','$2',$val);
}
?>
 
Zurück