Cómo str_replace una sección de código PHP
-
20-09-2019 - |
Pregunta
$embedCode = <<<EOF
getApplicationContent('video','player',array('id' => $iFileId, 'user' => $this->iViewer, 'password' => clear_xss($_COOKIE['memberPassword'])),true)
EOF;
$name = str_replace($embedCode,"test",$content);
Estoy tratando de reemplazar una sección de código con otra pieza de código. Puedo hacerlo con cadenas más pequeñas, pero una vez que he añadido las cadenas más grandes a $ embedCode, se generará un error "inesperado T_ENCAPSED_AND_WHITESPACE"
Solución
debe unescape la $
usando \$
$embedCode = <<<EOF
getApplicationContent('video','player',array('id' => \$iFileId, 'user' => \$this->iViewer, 'password' => clear_xss(\$_COOKIE['memberPassword'])),true)
EOF;
Si su objetivo es usar el nombre VARs, si desea utilizar el valor real de las variables, entonces el problema está en $ this-> iViewer ...
Otros consejos
Eliminar 'alrededor de la cerca de la memberPassword $ _COOKIE
Parece que estás buscando modos para la construcción de un lenguaje que no interpreta variable dentro - es así, usted tiene que utilizar la sintaxis no heredoc - pero la definición cadena normal limitada con '
$sample = 'qwe $asd zxc';
o escapar con $ \ Marcx que proponemos a continuación