Comment str_replace une section de code PHP
-
20-09-2019 - |
Question
$embedCode = <<<EOF
getApplicationContent('video','player',array('id' => $iFileId, 'user' => $this->iViewer, 'password' => clear_xss($_COOKIE['memberPassword'])),true)
EOF;
$name = str_replace($embedCode,"test",$content);
Je suis en train de remplacer une section de code avec un autre morceau de code. Je peux le faire avec des chaînes plus petites, mais une fois que j'ajouté les chaînes plus grandes à $ embedCode, il jette une erreur « T_ENCAPSED_AND_WHITESPACE inattendu »
La solution
vous devriez Unescape le $
en utilisant \$
$embedCode = <<<EOF
getApplicationContent('video','player',array('id' => \$iFileId, 'user' => \$this->iViewer, 'password' => clear_xss(\$_COOKIE['memberPassword'])),true)
EOF;
Si votre objectif est d'utiliser le nom de vars, si vous souhaitez utiliser la valeur réelle des variables, alors le problème est en $ this-> iViewer ...
Autres conseils
remove 'autour du memberPassword près de la _COOKIE $
semble de toute façon, vous êtes à la recherche pour la construction linguistique qui n'interprète variable à l'intérieur - donc vous devez pas utiliser la syntaxe heredoc - mais la définition de chaîne régulière limitée avec «
$sample = 'qwe $asd zxc';
ou échapper à $ avec \ comme Marcx propose ci-dessous