0

以下代码生成一个新的 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上生成以下代码

4

2 回答 2

0
echo highlight_file(__FILE__,true);  

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

这会让您返回当前文件的源代码。

于 2012-07-28T18:33:45.763 回答
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>.

于 2012-07-28T18:58:12.060 回答