2012-02-08 36 views
0

我想運行下面的代碼內部CSS在PHP

echo "<html> 
<head> 
<style type="text/css"> 

p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html>"; 
} 

但是這個代碼不run.However,當我運行

echo "<html> 
<head> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html>"; 
} 

代碼運行良好,

在黑色背景上的白色文本!

得到顯示。我包括內部的CSS正確的方式?

謝謝。

+0

「這個代碼不跑」是不是一個錯誤信息 - 使以這樣的方式,你可以找到錯誤messagse並請它們包括配置確保你有錯誤報告在你的帖子裏。 – symcbean 2012-02-08 12:06:33

+0

風格類型的雙引號尚未轉義。 – 2012-02-08 12:20:50

回答

4

你需要你的雙引號

echo "<html> 
<head> 
<style type=\"text/css\"> 
p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html>"; 

或者使用單引號,使他們不與你的HTML報價interfear前添加一個斜槓;

echo '<html> 
<head> 
<style type="text/css"> 
p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html>'; 

或者只是不使用PHP?

?> 
<html> 
<head> 
<style type="text/css"> 
p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html> 
<?php 
0

問題在於style type="text/css"中的引號。由於要回顯的字符串是用引號分隔的,因此這些引號會造成混亂。

可以使用單引號('),也可以用反斜槓(\")將雙引號轉義。

0

你想要回顯的字符串中有雙引號。因此,如果您使用雙引號分隔字符串,則需要轉義它們,即您必須將"\"之間的所有匹配項全部替換。如果您選擇使用單引號而不是雙引號分隔字符串,則可以避免這種轉義。是的,你可以在PHP中使用單引號字符串。唯一的區別是,在單引號字符串中,變量不會擴展爲其值,並且轉義序列失去其特殊含義。

但是,更好的方法是使用heredoc語法,如下所示。

<?php 
echo <<<HTML 
<html> 
<head> 
<style type="text/css"> 
p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html> 
HTML; 
?> 

更好的方法就是擺脫PHP模式。例如

<?php 
    // PHP code here. 
?> 
<html> 
<head> 
<style type="text/css"> 
p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 
<p>White text on a black background!</p> 
</body> 
</html> 
<?php 
    // PHP code here. 
?> 
1

您正在使用雙引號輸出,所以當它擊中了「文/ CSS」,因爲它假設你完成你的雙引號塊腳本死亡。

要麼把逸出斜線之前,你的雙引號,即\「文/ CSS \」或使用單引號,即「文/ CSS」

2

更好的方法(指數。PHP):

<html> 
<head> 
<style type="text/css"> 

p {color: white; } 
body {background-color: black; } 
</style> 
</head> 
<body> 

<?php 
//PHP Statements 
?> 

</body> 
</html> 
0

您需要正確地逃脫你的字符串,PHP現在把它讀成:

<?php 
echo "<html><head><style type="; 
text/css 
"> p {color: white; } body {background-color: black; } </style>"; 
?> 

這顯然是不正確的PHP

你需要逃避雙引號的雙引號字符串,在單引號字符串中使用單引號或使用NOWDOC/HEREDOC

有效例子:

<?php 
echo "<style type=\"text/css\">"; 
echo "<style type='text/css'>"; 
echo '<style type="text/css">'; // This one minimizes escapes but still uses the standard double-quotes in HTML, I'd advise it 
echo '<style type=\'text/css\'>'; 
echo <<<HTML 
    <style type="text/css"> 
HTML; 
?>