kostenloser Webspace werbefrei: lima-city


Probleme mit explode()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Hallo!

    Ich habe folgenen Code


    // das ist der string hier
            $stringarray = 0|info|bild_01|info|"Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 2009|info|1|zeile|1|info|bild_02|info|"Malediven / Der Herr ist mein Hirte" Hängung beim HGB-Rundgang 2009|info|1|zeile|
    
    
    	$stringarray = explode("|zeile|",$sicherungszeug);
    	$i = 0;
    	while ($i < count($stringarray))
    	{
    		$stringarray[$i] = explode("|info|",$sicherungszeug[$i]);	
    		$i++;
    	}


    Ein echo $stringarray[0][0]; liefert mir 0
    Ein echo $stringarray[0][1]; liefert mir |
    Ein echo $stringarray[0][2]; liefert mir i

    usw usf

    das ist natürlich nicht das was ich wollte, an sich sollte der String zerpüflückt werden.

    Kann mir jemand sagen wo da im Code der Fehler ist?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du benutzt im Code sie Variable $sicherungszeug die es afaik gar net gibt ;)

    $str = '...';
    $arr = explode('|zeile|', $str);
    
    $i = count($arr);
    while ($i--) {
        $arr[$i] = explode('|info|', $arr[$i]);
    }

    Damit sollte es gehen, ist aber ungetestet ;) [Rein $str, raus $arr]

    Beitrag zuletzt geändert: 6.7.2010 16:35:35 von nikic
  4. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Ach nee, das ist ein Tippfehler meinerseits, $sicherungszeug ist schon die variable wo der String drinnen steckt

    Ich hab den Schnipsel nach deinem Aufbau umgebaut, das gibt kein anderes Ergebnis.
    Kann es irgendwie an dem String selbst liegen? Der kommt aus Flash, muß ich dem irgendwie noch dem Typ String zuweisen? Und wie mach ich das?

    edit
    Ich hab die | mit = ersetzt, kein Erfolg; die erste Stringteilung geht aber :confused:

    edit
    Oha, ich hab beim zweiten Teilen nicht das Array genommen :sleep:

    Beitrag zuletzt geändert: 6.7.2010 17:11:15 von sonok
  5. also bei mir funktioniert auch sonoks Originalschnipsel. Habe den String nur in Anführungszeichen gesetzt und die entsprechenden Variablenverwechslungen rausgenommen.

    <?php
    $sicherungszeug = '0|info|bild_01|info|"Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 2009|info|1|zeile|1|info|bild_02|info|"Malediven / Der Herr ist mein Hirte" H&auml;ngung beim HGB-Rundgang 2009|info|1|zeile|';
    
    
    	$stringarray = explode("|zeile|",$sicherungszeug);
    	$i = 0;
    	while ($i < count($stringarray))
    	{
    		echo $stringarray[$i];
    		$stringarray[$i] = explode("|info|",$stringarray[$i]);	
    		print_r($stringarray[$i]);
    		echo $stringarray[$i][1];
    		echo $stringarray[$i][2];
    		$i++;
    	}
    
    ?>


    liefert die Ausgabe:

    0|info|bild_01|info|"Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 2009|info|1Array
    (
        [0] => 0
        [1] => bild_01
        [2] => "Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 2009
        [3] => 1
    )
    bild_01"Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 20091|info|bild_02|info|"Malediven / Der Herr ist mein Hirte" H&auml;ngung beim HGB-Rundgang 2009|info|1Array
    (
        [0] => 1
        [1] => bild_02
        [2] => "Malediven / Der Herr ist mein Hirte" H&auml;ngung beim HGB-Rundgang 2009
        [3] => 1
    )
    bild_02"Malediven / Der Herr ist mein Hirte" H&auml;ngung beim HGB-Rundgang 2009Array
    (
        [0] => 
    )


    Vielleicht den String vorher zwingend casten?

    if(!is_string($sicherungszeugs)) $sicherungszeugs = (string)$sicherungszeugs;


    Beitrag zuletzt geändert: 6.7.2010 17:06:27 von rnitsche
  6. w*o

    $stringarray = "0|info|bild_01|info|"Malediven / Der Herr ist mein Hirte" Ausstellung im Kunstraum Ortloff 2009|info|1:1|info|bild_02|info|"Malediven / Der Herr ist mein Hirte" H&auml;ngung beim HGB-Rundgang 2009|info|1";
    
    $stringarray = explode(":", $sicherungszeug);
    $i = 0;
    $stringarray2 = array();
    foreach ($sicherungszeug as $sicherungselement)
    {
    	$stringarray2[] = explode("|info|", $sicherungselement);	
    	$i++;
    }


    Vielleicht geht's so!

    Alternativ könntest du die Zeichenfolge, die du zerteilen willst, als JSON Code generieren. Da bietet PHP die passenden Funktionen...

    Guck mal hier: http://php.net/manual/de/book.json.php und hier: http://www.webmasterpro.de/coding/article/php-json-verwenden.html
  7. Autor dieses Themas

    sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Ja, hallo, vielen Dank, ich habs nun durch umschreiben doch zufällig gefunden - ich hab beim zweiten Teilen nicht das Array genommen, sondern wieder den String.

    Naja, wenigstens der Nachmittag ist so ordetlich draufgegangen :mad:
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!