如何读取包含php代码的csv文件?

如何读取包含php代码的csv文件?,php,templates,csv,Php,Templates,Csv,我搜索了谷歌,但并没有找到适合我的问题,或者我用错误的词搜索 在我读到的许多文章中,smarty模板是解决方案,但我不会使用smarty,因为它对于这个小项目来说太大了 我的问题是: 我得到了一个CSV文件,这个文件只包含HTML和PHP代码,它是一个简单的HTML模板文档,例如我用来生成动态图像链接的phpcode 我想读入这个文件(这是可行的),但我如何处理这个文件中的phpcode,因为phpcode显示为原样。我在CSV文件中使用的所有变量仍然正常工作 短版 如何处理、打印或回显CSV文

我搜索了谷歌,但并没有找到适合我的问题,或者我用错误的词搜索

在我读到的许多文章中,smarty模板是解决方案,但我不会使用smarty,因为它对于这个小项目来说太大了

我的问题是:

我得到了一个CSV文件,这个文件只包含HTML和PHP代码,它是一个简单的HTML模板文档,例如我用来生成动态图像链接的phpcode

我想读入这个文件(这是可行的),但我如何处理这个文件中的phpcode,因为phpcode显示为原样。我在CSV文件中使用的所有变量仍然正常工作

短版

如何处理、打印或回显CSV文件中的phpcode

非常感谢


很抱歉我的英语不好

请在上面格式化您的评论,您有以下代码:

$userdatei = fopen("selltemplate/template.txt","r");

while(!feof($userdatei)) {
   $zeile = fgets($userdatei);
   echo $zeile;
}

fclose($userdatei);

// so i read in the csv file and the content of csv file one line:
// src="<?php echo $bild1; ?>" ></a>
这是假设
$bild1
是在其他地方定义的,但请尝试在
while
循环中使用这些函数来解析和输出html/php:

$userdatei = fopen("selltemplate/template.txt","r");

while(!feof($userdatei)) {
   $zeile = fgets($userdatei);
   outputResults($zeile);
}

fclose($userdatei);

//-- $delims contains the delimiters for your $string. For example, you could use <?php and ?> instead of &lt;?php and ?&gt;
function parseString($string, $delims) {
    $result = array();

    //-- init delimiter vars
    if (empty($delims)) {
        $delims = array('&lt;?php', '?&gt;');
    }

    $start = $delims[0];
    $end = $delims[1];

    //-- where our delimiters start/end
    $php_start = strpos($string, $start);
    $php_end = strpos($string, $end) + strlen($end);

    //-- where our php CODE starts/ends
    $php_code_start = $php_start + strlen($start);
    $php_code_end = strpos($string, $end);

    //-- the non-php content before/after the php delimiters
    $pre = substr($string, 0, $php_start);
    $post = substr($string, $php_end);

    $code_end = $php_code_end - $php_code_start;
    $code = substr($string, $php_code_start, $code_end);

    $result['pre'] = $pre;
    $result['post'] = $post;
    $result['code'] = $code;

    return $result;
}

function outputResults($string) {
    $result = parseString($string);

    print $result['pre'];
    eval($result['code']);
    print $result['post'];
}
$userdatei=fopen(“selltemplate/template.txt”,“r”);
而(!feof($userdatei)){
$zeile=fgets($userdatei);
输出结果($zeile);
}
fclose($userdatei);
//--$delims包含$string的分隔符。例如,您可以使用而不是?php和?
函数parseString($string,$delims){
$result=array();
//--初始化分隔符变量
如果(空($delims)){
$delims=array('php','?');
}
$start=$delims[0];
$end=$delims[1];
//--分隔符开始/结束的位置
$php_start=strpos($string,$start);
$php_end=strpos($string,$end)+strlen($end);
//--我们的php代码从哪里开始/结束
$php_code_start=$php_start+strlen($start);
$php\u code\u end=strpos($string,$end);
//--php分隔符之前/之后的非php内容
$pre=substr($string,0,$php\u start);
$post=substr($string,$php\u end);
$code\u end=$php\u code\u end-$php\u code\u start;
$code=substr($string,$php\u code\u start,$code\u end);
$result['pre']=$pre;
$result['post']=$post;
$result['code']=$code;
返回$result;
}
函数输出结果($string){
$result=parseString($string);
打印$result['pre'];
评估($result['code']);
打印$result['post'];
}

CSV
文件中包含PHP代码,应该使用
eval
进行解析和执行,这听起来对我来说非常危险

如果我没弄错,你只想在你的CSV文件中有动态参数,对吗?如果是这种情况,并且您不想在应用程序中实现整个模板语言(如、或),那么您可以执行一个简单的搜索和替换操作

$string = "<img alt='{{myImageAlt}}' src='{{myImage}}' />";

$parameters = [
    'myImageAlt' => 'company logo',
    'myImage' => 'assets/images/logo.png'
];

foreach( $parameters as $key => $value )
{
    $string = str_replace( '{{'.$key.'}}', $value, $string );
}
$string=”“;
$parameters=[
“myImageAlt”=>“公司徽标”,
“myImage”=>“assets/images/logo.png”
];
foreach($key=>$value形式的参数)
{
$string=str_replace('{{.$key.'}}}',$value,$string);
}

欢迎使用堆栈溢出!这个问题缺乏信息。您是否可以分享您尝试过的内容以及遇到的问题?您是否尝试过将CSV行解析为字符串,然后用eval($phpCode)替换?“因为phpCode显示为原样。”-您的文件是
.php
扩展名,并且php是否在您所在的服务器上运行@JayBlanchard Gidday SamHi,谢谢你的快速回答@不,我没试过,但听起来不错。。。如果您想试试这个,您应该包括您的CSV源代码的示例。