【问题标题】:PHP include statement containing echoed PHP variablePHP include 语句包含回显的 PHP 变量
【发布时间】:2016-03-05 05:59:04
【问题描述】:

我有所需的 ID 变量,(有 1-6 个可能的值):

$new_product['ID'] =$row[2];

我需要的是根据这个变量回显一个单独的“php-include”,比如:

<?php include 'includes/size/prod/echo $row[2].php'; ?>

会显示,includes/size/prod/1.php,includes/size/prod/2.php 等

我不明白如何在 php 中表达“回声”。

【问题讨论】:

标签: php


【解决方案1】:

有几种方法:

//Concatenate array value in double quotes:
<?php include "includes/size/prod/{$row[2]}.php"; ?>

//Concatenate array value outside of quotes:
<?php include "includes/size/prod/".$row[2].".php"; ?>
//or, using single quotes:
<?php include 'includes/size/prod/'.$row[2].'.php'; ?>

//Concatenate variable (not array value) in double quotes:
<?php $page = $row[2]; include "includes/size/prod/$page.php"; ?>

见:

【讨论】:

    【解决方案2】:

    使用这种技术包含您的 PHP 文件是非常危险的!
    您必须通过至少控制包含的文件是 PHP 来防止这种情况发生

    现在回答你的问题:

    <?php 
    // ? $row2 contains more than 1 php file to include ?
    //   they are seperated by comma ?
    
    $phpToInclude = NULL;
    define(TEMPLATE_INCLUDE, 'includes/size/prod/');
    
    if (isset($row[2])) {
        $phpToInclude = explode($row[2], ',');
    }
    
    if (!is_null($phpToInclude)) {
        foreach($phpToInclude as $f) {
            $include = sprintf(TEMPLATE_INCLUDE . '%s', $f);
            if (is_file($include)) {
                // add validator here !!
                include ($include);
            }
            else {
                // file not exist, log your error
            }
        }
    }
    
    ?>
    

    【讨论】:

      【解决方案3】:

      亲爱的使用以下工作代码

      $row[2]         =   '';
      $file_name      =   !empty($row[2])?$row[2]:'default';
      $include_file   =  "includes/size/prod/".$file_name.".php";
      include($include_file);
      

      【讨论】:

        【解决方案4】:

        用双引号而不是单引号来评估事物:

        $var = "rajveer gangwar";
        echo '$var is musician'; // $s is musician.
        echo "$var is musician."; //rajveer gangwar is musician.
        

        所以最好使用双引号

        例子:

        // Get your dynamic file name in a single variable.
        $file_name      =   !empty($row[0]) ? $row[0] : "default_file";
        $include_file   =  "includes/size/prod/$file_name.php";
        include($include_file);
        

        【讨论】:

          【解决方案5】:

          您可以使用点来分隔字符串: 比如:

          $path = 'includes/size/prod/'.$row[2].'.php'; 
          
          include '$path';
          

          或者你可以把它放在一个变量中:

          $path = $row[2];
          include 'includes/size/prod/$path.php'; 
          

          Php 能够计算字符串中的变量。

          【讨论】:

            猜你喜欢
            • 2013-11-13
            • 2017-09-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-02
            相关资源
            最近更新 更多