【问题标题】:Syntax help with echo html and variablesecho html 和变量的语法帮助
【发布时间】:2011-05-19 10:22:20
【问题描述】:

我有这段代码(见下文),我无法回显变量。第 5 行是一个回声,在那个回声中是一个 html 负载(我已经转义了引号)和一个变量负载。我无法让变量在主回声中回显。

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

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

【问题讨论】:

    标签: php html variables syntax


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      你这里好像有点误会。

      在 PHP 中,您可以通过

      输出 HTML
      • &lt;?php...?&gt; 之外编写简单的 HTML,并可能在里面插入一些 PHP 代码
      • 使用 echo / print 之类的东西来输出包含 HTML 的 PHP string

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

      所以这不好:

      echo "... src=\"<?php echo $fields->thumb_image; ?>\" ...";
      

      因为这是一个字符串,并且在字符串中您不能打开&lt;?php 部分。你应该这样做:

      echo "... src=\"{$fields->thumb_image}\" ...";
      

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

      【讨论】:

        【解决方案3】:

        类似的东西

        echo " ... <?php ... ?> ...";
        

        不会工作。

        相反,您可以“闯入和闯出” php,例如:

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

        或者使用 s/printf

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

        或者使用字符串连接:

        echo "html ...", get_page_link($post->ID), "some more html...";
        

        或者使用某种模板代码。

        【讨论】:

        • +1 表示这样做的几种好方法(printf 很棒)
        【解决方案4】:

        只需要在if之后关闭php标签,在结束分号之前打开即可。

        if(
               in_array("Branding", get_field('categories')) && $grid_title == "Branding"
           ){
           ?>
                <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>
           <?php
           }
           ?>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-17
          • 1970-01-01
          • 1970-01-01
          • 2012-08-02
          • 2021-06-10
          • 2016-11-26
          相关资源
          最近更新 更多