2016-09-16 27 views
0

我有一些PHP代碼,將設置一個HTML代碼,這樣的變量:將php代碼定義爲變量 - 最簡單的方法是什麼?

public function get_code() { 
    $code = '<h1>Title</h1>'; 
    $code .= '<p>Text</p>'; 
    return $code; 
} 

現在,如果有什麼的HTML代碼是PHP代碼?是否有可能將PHP代碼設置爲變量?

我知道PHP代碼需要是一個字符串。因此,這是一種方式如何做到這一點:

public function get_code() { 
    $code = ' 
       if (in_array(\'custom_less\', $options)) { 
        $style = \'@import "assets/css/style.less"\'; 
       } 
    '; 
    return $code; 
} 

因爲我有一個非常大的代碼,這是非常惱人的經歷各',並以確定整個代碼作爲字符串之前設置\ 。有沒有辦法擺脫那些反斜槓?

我想將它作爲變量的原因是因爲代碼需要寫入文件。

+2

您可以使用['nowdoc'](http://php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc)。不過,我確實需要問,爲什麼你需要將PHP代碼放入一個變量中?除非用於演示(在網站上打印實際代碼或類似代碼),否則聽起來就像是一種代碼味道。 –

+0

謝謝@MagnusEriksson。我認爲這一定是我正在尋找的。我需要將PHP代碼作爲變量,因爲我想將它寫入文件。 – Reza

+0

難道你不能把它存儲在一個文件開始? –

回答

0

您可以在雙引號內使用單引號,反之亦然。所以你可以這樣說。

public function get_code() { 

     $code = " 
      if (in_array('custom_less', $options)) { 
       $style = '@import assets/css/style.less'; 
      } 
     "; 
     return $code; 
} 
+0

因此,如果我的代碼還包含雙引號,我仍然需要通過每個單引號並在它們之前設置反斜槓。我正在尋找一種方法來徹底擺脫那些反斜槓。 – Reza

+0

然後嘗試使用htmlspecialchars()或htmlentities()函數 – xFighter

+0

@AbdulAhad - 這些方法會更改實際內容,如果以後要使用它,則無效。 –

0

如果你想存儲純HTML代碼中的變量,然後最簡單的方法是

public function get_code() { 
    $output = <<<EOD 
<div>SOME HTML</div> 
EOD; 
return $output; 
} 

這就是所謂的PHP定界符語法。

相關問題