سؤال

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

وأنا أحاول أن تحل محل جزء من التعليمات البرمجية مع قطعة أخرى من التعليمات البرمجية. أستطيع أن أفعل ذلك مع سلاسل صغيرة ولكن مرة واحدة أنا واضاف سلاسل أكبر ل$ embedCode، ورمي خطأ "T_ENCAPSED_AND_WHITESPACE غير متوقع"

هل كانت مفيدة؟

المحلول

ويجب تفادي استبعاد ل$ باستخدام \$

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

إذا هدفكم هو استخدام دوال اللغة اسم، إذا كنت ترغب في استخدام القيمة الحقيقية للمتغيرات، ثم المشكلة هي في $ هذا-> iViewer ...

نصائح أخرى

وإزالة "حول memberPassword بالقرب من $ _COOKIE

ويبدو على أي حال كنت تبحث عن بناء اللغة التي لا يفسر داخل متغير - حتى ذلك الحين لديك لاستخدام لا HEREDOC جملة - ولكن تعريف سلسلة منتظمة محدودة مع '

$sample = 'qwe $asd zxc';

وأو الهروب $ مع \ كما تقترح Marcx أدناه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top