Domanda

$embedCode = <<<EOF
getApplicationContent('video','player',array('id' => $iFileId, 'user' => $this->iViewer, 'password' => clear_xss($_COOKIE['memberPassword'])),true)
EOF;
$name = str_replace($embedCode,"test",$content);

che sto cercando di sostituire una sezione di codice con un altro pezzo di codice. Posso farlo con le stringhe più piccole, ma una volta ho aggiunto le corde più grandi per $ embedCode, si genera un errore "T_ENCAPSED_AND_WHITESPACE inattesa"

È stato utile?

Soluzione

si dovrebbe unescape l'$ utilizzando \$

$embedCode = <<<EOF
    getApplicationContent('video','player',array('id' => \$iFileId, 'user' => \$this->iViewer, 'password' => clear_xss(\$_COOKIE['memberPassword'])),true)
EOF;

Se il vostro obiettivo è quello di utilizzare il nome di Vars, se si desidera utilizzare il valore reale delle variabili, allora il problema è in $ this-> iViewer ...

Altri suggerimenti

Rimuovi 'in tutto il memberPassword vicino al $ _COOKIE

in ogni caso sembra che stai cercando per la costruzione di un linguaggio che non interpreta variabile all'interno - così allora si deve utilizzare non heredoc sintassi - ma la definizione stringa regolare limitata con '

$sample = 'qwe $asd zxc';

o la fuga $ con \ come Marcx proponiamo di seguito

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top