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 »

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top