【问题标题】:php code inside divs inside a php array [closed]php数组内的div内的php代码[关闭]
【发布时间】:2016-08-22 19:24:58
【问题描述】:

大家好,抱歉英语不好 :) 我在下面有这段代码,它与数组中定义的一些 div 相呼应 我想在这些 div 中包含一个 php 页面(下面的示例):

<?php $items =array(         
        '<div id="o-31" class="col-sm-6 col-md-4 col-lg-3" > <div id="mydid"  >   </div></div>',  


             '<div id="o-36" class="col-sm-6 col-md-4 col-lg-3"  ><div  class="demo-content bg-alt" >.col-sm-8</div></div>', 


             '<div id="o-37" class="col-sm-6 col-md-4 col-lg-3"  ><div class="demo-content bg-alt" >.col-sm-8</div></div>', 


      '<div id="o-38" class="col-sm-6 col-md-4 col-lg-3"><div id="mydid"  > </div></div>'
     );

?> 
      <?php 
        for($i = 0; $i <= 3; $i++){

        echo $items[$i];

        }
      ?>

我看不到如何在我尝试过的 div 中添加 php 代码:

 '<div id="o-31" class="col-sm-6 col-md-4 col-lg-3" > <div id="mydid"  > 

         <?php
      $ccc= "ff";
  $tablelink2=$_SESSION['hes_2'];
 $tabletitle2=$_SESSION['hes_1'];
 $tableimg2= $_SESSION['hes_3'];
     include('hes_2.php');
     ?>

        </div></div>',  

'<div id="o-31" class="col-sm-6 col-md-4 col-lg-3" > <div id="mydid"  >'



     <?php
          $ccc= "ff";
      $tablelink2=$_SESSION['hes_2'];
     $tabletitle2=$_SESSION['hes_1'];
     $tableimg2= $_SESSION['hes_3'];
         include('hes_2.php');
         ?>

            '</div></div>', 

也不工作:(?

【问题讨论】:

  • 这毫无意义。你真正想做什么?将 php 代码放入 php 数组中……为什么?
  • 我认为你需要从第 1 章第 1 段第 1 段开始,弄清楚你真正想要达到的目标是什么
  • session_start();是否存在于代码之上?
  • 如果这是您的想法:您不能将 PHP 代码放在 div 中以便稍后运行。 PHP 在服务器上运行。您只能将 PHP 代码的输出放在一个 div 中。
  • 是的会话已启动,我将更改为一些 GET 并将所有代码带到一个新的 php 文件中

标签: php html


【解决方案1】:

首先,

我会推荐使用 sprintfvsprintf 来整理你的代码,

$items =array(         
    '<div id="o-31" class="col-sm-6 col-md-4 col-lg-3"><div id="mydid">%s</div></div>',  
    '<div id="o-36" class="col-sm-6 col-md-4 col-lg-3"><div class="demo-content bg-alt">.col-sm-8</div></div>', 
    '<div id="o-37" class="col-sm-6 col-md-4 col-lg-3"><div class="demo-content bg-alt">.col-sm-8</div></div>', 
    '<div id="o-38" class="col-sm-6 col-md-4 col-lg-3"><div id="mydid">%s</div></div>'
);

$items[0] = sprintf($items[0], 'Item 0');
$items[3] = sprintf($items[3], 'Item 3');

echo vsprintf(str_repeat("%s\n", count($items)), $items);

接下来,关于包含文件。这里有一个工作,

How to load a php file into a variable

实施,

function inc2var($file){
    ob_start();
    include $file;
    $var = ob_get_contents();
    ob_end_clean();
    return $var;
}

$ccc = "ff";
$tablelink2 = $_SESSION['hes_2'];
$tabletitle2 = $_SESSION['hes_1'];
$tableimg2 = $_SESSION['hes_3'];

$items[0] = sprintf($items[0], inc2var('hes_2.php'));

希望这会有所帮助。

【讨论】:

  • 嘿,谢谢我正在更改孔代码,但您的回答让我印象深刻,我第一次看到这种 ob 方法,我正在阅读它
  • 它可以工作,但是有错误 undefined variables $ccc ...这些变量在 php 文件中使用 - 谢谢
  • 只是将变量移动到函数中,非常感谢人
【解决方案2】:

尝试制作一个单独的 PHP 文件并通过地址行传递一个参数:somefile.php?a=5&amp;b=7&amp;c=hello 等,然后使用 $_GET['varname'] 读取目标文件中的这些参数,例如 $_GET['a']。如果 ['a'] 不会被修复,您可以使用双引号和变量名:$_GET["$varname"]

希望这会有所帮助。

【讨论】:

  • 谢谢,我会试试你的想法,看起来不错
【解决方案3】:

您不能在 PHP 中嵌入 PHP:

<?php $items =array(         
        '<div id="o-31" [...snip...]
         <?php ... ?>

您已经在第一行处于 PHP 模式,并且位于 PHP 字符串的中间,这意味着 SECOND &lt;?php 标记不是 PHP 标记。这是字符&lt;?p 等...成为您正在构建的字符串的一部分。

你必须打破字符串,做任何你想做的事,然后回到字符串模式。例如

$str = "foo <?php bar() ?> baz"; // will not work
$str = "foo " . bar() . " baz"; //works fine

【讨论】:

  • 好的,但这里不是这样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多