首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP Echo,一大块文本

PHP Echo,一大块文本
EN

Stack Overflow用户
提问于 2010-04-20 12:55:12
回答 8查看 146.3K关注 0票数 42

我是PHP新手,我不知道使用echo函数的规则是什么。例如,如果我需要回显一大块css/js,是否需要向每行文本添加回显,或者有没有一种方法可以回显一大块代码?

当我尝试回显像这样的大块代码时,我得到了一个错误:

代码语言:javascript
复制
if (is_single()) {
echo '<link type="text/css" rel="stylesheet" href="http://jotform.com/css/styles/form.css"/><style type="text/css"> 
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
body, html{
margin:0;
padding:0;
background:false;
}

.form-all{
margin:0px auto;
padding-top:20px;
width:650px !important;
color:Black;
font-family:Verdana;
font-size:12px;
}
</style> 

<link href="http://jotform.com/css/calendarview.css" rel="stylesheet" type="text/css" /> 
<script src="http://jotform.com/js/prototype.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus-ui.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/jotform.js?v3" type="text/javascript"></script> 
<script src="http://jotform.com/js/location.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/calendarview.js" type="text/javascript"></script> 
<script type="text/javascript"> 

JotForm.init(function(){
$('input_6').hint('ex: myname@example.com');
});
</script>';
}else {

}

有没有一种更好的方法来回显大块的代码,而不需要做很多工作(例如,将echo添加到每一行)?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-04-20 12:57:56

一种选择是跳出php代码块,只编写HTML。

在代码中,在if语句的左花括号之后,结束PHP:

代码语言:javascript
复制
if (is_single()) { ?>

然后删除echo '';

在所有的html和css之后,在结束}之前,写下:

代码语言:javascript
复制
<? } else {

如果您想要写入页面的文本是动态的,它会变得有点棘手,但现在这应该可以很好地工作。

票数 71
EN

Stack Overflow用户

发布于 2010-04-20 13:00:46

Heredoc syntax可能非常有用:

代码语言:javascript
复制
// start the string with 3 <'s and then a word
// it doesn't have to be any particular string or length
// but it's common to make it in all caps.
echo <<< EOT
    in here is your string
    it has the same variable substitution rules
    as a double quoted string.
    when you end it, put the indicator word at the
    start of the line (no spaces before it)
    and put a semicolon after it
EOT;
票数 139
EN

Stack Overflow用户

发布于 2010-04-20 13:02:50

回显包含换行符的文本是可以的,并且一次回显的文本或行数没有限制(可用内存除外)。

代码中的错误是由字符串中出现的未转义的单引号引起的。

请看下面这一行:

代码语言:javascript
复制
$('input_6').hint('ex: myname@example.com');

您需要对PHP字符串中的那些单引号进行转义,无论它是不是一行。

不过,还有另一种回显大字符串的好方法,那就是关闭PHP块,稍后再打开它:

代码语言:javascript
复制
if (is_single()) {
  ?>
<link type="text/css" rel="stylesheet" href="http://jotform.com/css/styles/form.css"/><style type="text/css"> 
.form-label{
width:150px !important;
}
.form-label-left{
width:150px !important;
}
.form-line{
padding:10px;
}
.form-label-right{
width:150px !important;
}
body, html{
margin:0;
padding:0;
background:false;
}

.form-all{
margin:0px auto;
padding-top:20px;
width:650px !important;
color:Black;
font-family:Verdana;
font-size:12px;
}
</style> 

<link href="http://jotform.com/css/calendarview.css" rel="stylesheet" type="text/css" /> 
<script src="http://jotform.com/js/prototype.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/protoplus-ui.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/jotform.js?v3" type="text/javascript"></script> 
<script src="http://jotform.com/js/location.js" type="text/javascript"></script> 
<script src="http://jotform.com/js/calendarview.js" type="text/javascript"></script> 
<script type="text/javascript"> 

JotForm.init(function(){
$('input_6').hint('ex: myname@example.com');
});
</script>
  <?php
}else {

}

或者,另一种可能对可读性更好的替代方法是将所有的静态HTML放入另一个页面并包含它()。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2672642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档