2015-02-24 76 views
0

我搜索谷歌,但沒有發現什麼適合我的問題,或者我用錯誤的詞搜索。如何用php代碼讀取csv文件?

在我閱讀的許多線程中,smarty Template是解決方案,但我不會使用smarty,因爲它對於這個小項目來說很重要。

我的問題:

我有一個CSV文件,這個文件的內容只有HTML和PHP代碼,它的一個簡單的HTML模板文件我用生成動態imagelinks例如phpcode。

我想閱讀這個文件(工程),但我如何處理該文件內的phpcode,因爲phpcode顯示爲他們是。我在CSV文件中使用的所有變量仍然正常。

短版

如何處理,打印或回顯phpcode中的CSV文件。

非常感謝,

和對不起我的英語不好

+2

歡迎來到Stack Overflow!這個問題在信息上有點短暫。你可以分享你的嘗試,並且遇到了什麼問題? – 2015-02-24 18:59:24

+0

您是否嘗試將CS​​V行解析爲字符串,然後替換<?php php_code(); ?>用eval($ phpCode)? – 2015-02-24 18:59:49

+1

*「因爲phpcode顯示爲」。*「 - 您的文件是否爲'.php'擴展名,並且PHP正在您所在的服務器上運行? @JayBlanchard * Gidday山姆* – 2015-02-24 19:06:26

回答

0

格式化您的評論你上面有下面的代碼:

$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=&quot;&lt;?php echo $bild1; ?&gt;&quot; &gt;&lt;/a&gt; 

這是假設$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']; 
} 
0

CSV文件中的PHP代碼解析並且可能使用eval執行,這對我來說聽起來很危險。

如果我找到了你,你只想在你的CSV文件中有動態參數嗎?如果是這種情況,並且您不想將整個模板語言(如Mustache,TwigSmarty)應用到您的應用程序中,則可以執行簡單的搜索並替換的東西。

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