在php中使用内部css

在php中使用内部css,php,css,Php,Css,我想运行以下代码 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>"; }

我想运行以下代码

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>";
}
echo”
p{颜色:白色;}
正文{背景色:黑色;}
黑色背景上的白色文本

"; }
但是这段代码不运行。但是,当我运行

echo "<html>
<head>
</head>
<body>
<p>White text on a black background!</p>
</body>
</html>";
}
echo”
黑色背景上的白色文本

"; }
该代码运行良好,并且

黑色背景上的白色文本

显示。我是否以正确的方式包含内部css


谢谢。

您需要在双引号前添加斜杠

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>";
echo”
p{颜色:白色;}
正文{背景色:黑色;}
黑色背景上的白色文本

";
或者使用单引号,这样它们就不会与HTML引号相冲突

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>';
echo'
p{颜色:白色;}
正文{背景色:黑色;}
黑色背景上的白色文本

';
或者干脆不使用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
?>
p{颜色:白色;}
正文{背景色:黑色;}
黑色背景上的白色文本


问题在于
style type=“text/css”
中的引号。因为要回显的字符串由引号分隔,所以这些引号会把事情搞砸


可以使用单引号(
),也可以用反斜杠(
\“
)转义双引号。

要回显的字符串中有双引号。因此,如果有双引号分隔的字符串,则需要转义它们,即必须用
替换所有出现的
\“
。如果选择使用单引号而不是双引号分隔字符串,则可以避免这种转义。是的,您可以在PHP中使用单引号字符串。唯一的区别是,在单引号字符串中,变量没有扩展到其值,转义序列失去了其特殊意义

然而,更简洁的方法是使用
herdeoc
语法,如下所示

<?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模式。e、 g

<?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.
?>

p{颜色:白色;}
正文{背景色:黑色;}
黑色背景上的白色文本


您正在使用双引号进行输出,因此脚本在点击“text/css”时死亡,因为它假定您正在完成双引号块

在双引号前加一个转义斜杠,即“text/css”,或使用单引号,即“text/css”

更好的方法(index.php):


p{颜色:白色;}
正文{背景色:黑色;}

您需要正确转义字符串,PHP现在将其读取为:

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

这显然是不对的

您需要在双引号字符串中转义双引号,在单引号字符串中转义单引号或使用/

有效例子:

<?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;
?>

“此代码未运行”不是错误消息-请确保已将错误报告配置为可以找到错误消息并将其包含在帖子中。尚未转义样式类型的双引号。
<?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;
?>