首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于echo html和变量的语法帮助

关于echo html和变量的语法帮助
EN

Stack Overflow用户
提问于 2011-05-19 18:22:20
回答 4查看 2.9K关注 0票数 1

我有这样一段代码(见下文),我在回显变量时遇到了问题。在第5行是一个回声,在回声中是一个加载的html (我已经省略了引号)和一个变量的加载。我不能让变量在主回声中回显出来。

更新:还有一个需要考虑的onclick。

代码语言:javascript
复制
<?php
   if(
       in_array("Branding", get_field('categories')) && $grid_title == "Branding"
   ){
     echo "
        <div class=\"grid-box\" onclick=\"location.href='<?php echo get_page_link($post->ID) ?>';\" style=\"cursor: pointer;\">
        <div class=\"phase-1\">
           <img class=\"grid-image\" src=\"<?php echo $fields->thumb_image; ?>\" alt=\"<?php echo $fields->company_name; ?>\" height=\"152\" width=\"210\" />
           <div class=\"grid-heading\">
                <h2><?php echo $fields->company_name; ?></h2>
                <h3><?php echo implode(', ',get_field('categories'));?></h3>
            </div> 
        </div>
        <div class=\"phase-2\">
            <div class=\"grid-info\">
                <h4><?php echo $fields->project_name; ?></h4>
                <p><?php echo $fields->description; ?></p>
            </div>
            <div class=\"grid-heading-hover\">
                <h2><?php echo $fields->company_name; ?></h2>
                <h3><?php echo implode(', ',get_field('categories'));?></h3>
            </div> 
        </div>
    </div>
     ";
   }
   ?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-19 18:28:35

你不能在echo中使用echo,你只需要像这样正确地连接你的字符串:

代码语言:javascript
复制
     $Content =  "
        <div class=\"grid-box\" onclick=\"location.href='" . get_page_link($post->ID). "';\" style=\"cursor: pointer;\">
        <div class=\"phase-1\">
           <img class=\"grid-image\" src=\"" . $fields->thumb_image . "\" alt=\"" . $fields->company_name. "\" height=\"152\" width=\"210\" />
           <div class=\"grid-heading\">
                <h2> " . $fields->company_name . "</h2>
                <h3>" . implode(', ',get_field('categories')) . "</h3>
            </div> 
        </div>
        <div class=\"phase-2\">
            <div class=\"grid-info\">
                <h4>" . $fields->project_name . "</h4>
                <p>" . $fields->description . "</p>
            </div>
            <div class=\"grid-heading-hover\">
                <h2>" . $fields->company_name . "</h2>
                <h3>" . implode(', ',get_field('categories')). "</h3>
            </div> 
        </div>
    </div>";
  echo $Content;
票数 3
EN

Stack Overflow用户

发布于 2011-05-19 18:30:45

你好像有点误会了。

在PHP中,您可以通过以下方式输出HTML

  • <?php...?>外编写简单的HTML,并可能在
  • 内插入一些PHP代码,使用类似echo / print的内容输出包含HTML代码< PHP string >F29>的代码。

但你不能把两者混为一谈。

所以这并不好:

代码语言:javascript
复制
echo "... src=\"<?php echo $fields->thumb_image; ?>\" ...";

因为这是一个字符串,并且在字符串中不能打开<?php节。相反,您应该这样做:

代码语言:javascript
复制
echo "... src=\"{$fields->thumb_image}\" ...";

这是在字符串中插入PHP变量的一种很酷的方式。

票数 2
EN

Stack Overflow用户

发布于 2011-05-19 18:28:29

像这样的东西

代码语言:javascript
复制
echo " ... <?php ... ?> ...";

不会起作用。

取而代之的是,你可以“破解”php,比如:

代码语言:javascript
复制
...
?>
<div class="grid-box" onclick="location.href='<?php echo get_page_link($post->ID) ?>';" style="cursor: pointer;">
<div class="phase-1"> ... <?php

或使用s/printf

代码语言:javascript
复制
printf(
    '<div class="grid-box" onclick="location.href='%s';" style="cursor: pointer;">',
    get_page_link($post->ID)
);

或者使用字符串连接:

代码语言:javascript
复制
echo "html ...", get_page_link($post->ID), "some more html...";

或者使用某种模板代码。

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

https://stackoverflow.com/questions/6057153

复制
相关文章

相似问题

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