Tom: stripslashes, wie kriegt man Slashes in ein Testarray?

Beitrag lesen

Hello,

irgendwie habe ich mich in meiner eigenen Gedankenrekursion gefangen.

Ich wollte "nur mal schnell eben" eine Funktion schreiben, um aus einem Array-Baum beliebiger Tiefe die Slashes zu entfernen. Das scheint auch auf Anhieb gelungen zu sein.

Nun wollte ich es testen und dafür durch Wertzuweisung Slashes in ein Testarray reinsetzen. Das klappt leider nicht.

$in = array();

$in[1] = "\"Hello\"";
$in[2][1] = "Fußnoten \$\"";
$in[2][2] = "hier sind \"Slashes\" drin";
$in[3] = 7599.37;
$in[4][0][4] = "keine Ahnung, was das soll";
$in[4][1] = "ich auch nicht, \"Paul";

Ich will ja nicht drei, sondern nur zwei slashes haben. Wie mach ich das, ohen dass es

Parse error: parse error, unexpected T_STRING in /home/thomas/public_html/test/Arrays/stripslashes.php on line 30

einen Fehler gibt?

Hier die koplette Funktion zum Copy & Paste:

<?php   #### stripslashes.php ####

function strip($data)
{
  if (!get_magic_quotes_gpc())
  {
    return $data;
  }

if (is_array($data))
  {
    foreach($data as $key => $val)
    {
      $data[$key] = strip($val);
    }
  }
  else
  {
    $data = stripslashes($data);
  }
  return $data;
}

#-----------------------------------------------

$in = array();
$in[1] = "\"Hello\"";
$in[2][1] = "Fußnoten \$\"";
$in[2][2] = "hier sind \"Slashes\" drin";
$in[3] = 7599.37;
$in[4][0][4] = "keine Ahnung, was das soll";
$in[4][1] = "ich auch nicht, \"Paul";

echo "<pre>";
echo htmlentities(var_export($in));
echo "</pre>";

$out = strip($in);

echo "<pre>";
echo htmlentities(var_export($out));
echo "</pre>";

?>

So läuft sie natürlich nicht.

Und dann macht mich noch Stutzig, dass nach dem Aufruf (mit drei Slashes bei der Zuweisung im Musterarray) in Out nacher keiner mehr drin steht, also die Doppelslashes beide entfernt werden. Wieso?

Kann mir leider nicht lesiten, meine Grippe erst auszukurieren. Also brauche ich Eure Hilfe.

Grüße

Tom