php自动生成同一文件的代码

时间:2012-07-28 18:04:46

标签: php

以下代码生成一个新的php文件playlist.php,其中包含$ start $ result变量中的代码

$path = "./files/";
$path2="http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/files/";
//echo $path2;
$folder = opendir($path);
$start="<asx version='3.0'>\n<title>Example ASX playlist</title>";
$Fnm = "./playlist.php";
$inF = fopen($Fnm,"w");
fwrite($inF,$start."\n");
while( $file = readdir($folder) ) {
 if (($file != '.')&&($file != '..')&&($file != 'index.htm')){
 $result="<entry>\n<title>$file</title>\n<ref href='$path2$file'/>\n<param name='image'     value='preview.jpg'/>\n</entry>\n";
     fwrite($inF,$result);
 }
}
fwrite($inF,"</asx>");
closedir($folder);
fclose($inF);

我想在同一个文件中生成相同的代码,该文件在指定的行号上包含此代码 这有可能吗?

上面的php脚本在新文件上生成以下代码 http://tinypaste.com/ff242cd6

2 个答案:

答案 0 :(得分:0)

echo highlight_file(__FILE__,true);  

http://www.php.net/manual/en/function.show-source.php

这会让你回到当前文件的源代码。

答案 1 :(得分:0)

以下是如何追加:

$path = "./files/";
$path2="http://".$_SERVER['SERVER_NAME'].dirname($_SERVER["PHP_SELF"])."/files/";
//echo $path2;
$folder = opendir($path);
$start="<asx version='3.0'>\n<title>Example ASX playlist</title>";
$Fnm = "./playlist.php";
// build content
$fileContent=$start.'/n';

while( $file = readdir($folder) ) {
 if (($file != '.')&&($file != '..')&&($file != 'index.htm')){
 $result="<entry>\n<title>$file</title>\n<ref href='$path2$file'/>\n<param name='image'     value='preview.jpg'/>\n</entry>\n";
     //append to content
$fileContent .= $result;
 }
}
     //append to content
$fileContent .= "</asx>";

// append to file and check status
if ( file_put_contents(__FILE__ , $fileContent , FILE_APPEND) === false )
{

echo "failed to put contents in ".__FILE__."<br>";

}

应该这样做......

编辑:

好的,在我进入它之前,你应该首先看一下可以在网上找到的一些基本的PHP教程。

所以,不要将内容写入文件,只需回显它,并在回显时添加动态内容:

$title='the title of your playlist';

$start="<asx version='3.0'>\n<title>".$title."</title>/n";

while( $file = readdir($folder) ) {
 if (($file != '.')&&($file != '..')&&($file != 'index.htm')){
 $result="<entry>\n<title>$file</title>\n<ref href='$path2.$file'/>\n<param name='image'     value='preview.jpg'/>\n</entry>\n";
}
}

$endCont = $start.$result."</asx>";

echo $endCont;

我创建了一个名为$title的新变量。其值将是输出中生成的标题。您可以使用其他代码执行此操作,就像使用<entry>\n<title>$file</title>一样。