如何使用PHP将PHP内容保存到文件

如何使用PHP将PHP内容保存到文件,php,xml,getid3,Php,Xml,Getid3,大家好,我最近刚刚制作了一个FLASH AS3 XML播放列表播放器,除了我必须键入所有XML的部分之外,它工作得非常好。 有人帮我编译了这段代码,效果很好,但我希望能够将XML保存到文件中,而不仅仅是读取它。并在给定文件夹中.mp3的数量增加时进行自我更新 require_once('getid3/getid3.php'); $dir = $_GET['folder']; $xmlBody = '<?xml version="1.0" encoding="ISO-

大家好,我最近刚刚制作了一个FLASH AS3 XML播放列表播放器,除了我必须键入所有XML的部分之外,它工作得非常好。 有人帮我编译了这段代码,效果很好,但我希望能够将XML保存到文件中,而不仅仅是读取它。并在给定文件夹中.mp3的数量增加时进行自我更新

    require_once('getid3/getid3.php');
    $dir = $_GET['folder'];
    $xmlBody = '<?xml version="1.0" encoding="ISO-8859-1"?>';
    $xmlBody .= "<XML>";
    $getID3 = new getID3;
    $DirectoryToScan = 'SOUNDS';
    $dirHandle = opendir($dir);
    $strIsNull = "not found";
    $i = 0;
    while (($file = readdir($dirHandle)) !== false) {
       $FullFileName = realpath($dir.'/'.$file);
       if ((substr($FullFileName, 0, 1) != '.') && is_file($FullFileName)) {
         $i++;
         set_time_limit(30);
         $ThisFileInfo = $getID3->analyze($FullFileName);
         getid3_lib::CopyTagsToComments($ThisFileInfo);
         $xmlBody .= '<Song>';
         $xmlBody .= '<songNum>' . $i . '</songNum>
            <songURL>' .basename($ThisFileInfo['filenamepath']).'</songURL>
            <songArtist>' .(!empty($ThisFileInfo['comments_html']['artist']) ?  implode('<br>',$ThisFileInfo['comments_html']['artist'])  : $strIsNull) .'</songArtist>
            <songTitle>' .(!empty($ThisFileInfo['comments_html']['title']) ?implode('<br>', $ThisFileInfo['comments_html']['title'])  : $strIsNull) . '</songTitle>
            <songSize>'  .round($ThisFileInfo['audio']['bitrate'] / 1000).' kbps </songSize>
            <songDuration>' . $ThisFileInfo['playtime_string'].' </songDuration>';
          $xmlBody .= '</Song>';
       }
    }
    $xmlBody .= "</XML>";
    header('Content-type: text/xml');
    echo $xmlBody; 
require_once('getid3/getid3.php');
$dir=$_GET['folder'];
$xmlBody='';
$xmlBody.=”;
$getID3=新的getID3;
$DirectoryToScan='SOUNDS';
$dirHandle=opendir($dir);
$strisnall=“未找到”;
$i=0;
while(($file=readdir($dirHandle))!==false){
$FullFileName=realpath($dir.'/'.$file);
if((substr($FullFileName,0,1)!='。)&&is_文件($FullFileName)){
$i++;
设置时间限制(30);
$ThisFileInfo=$getID3->analyze($FullFileName);
getid3_lib::CopyTagsToComments($ThisFileInfo);
$xmlBody.='';
$xmlBody.=''.$i'
“.basename($ThisFileInfo['filenamepath'])”
“.(!empty($ThisFileInfo['comments\u html']['artist'])?内爆('
',$ThisFileInfo['comments\u html']['artist']):$strisnall)。” “(!empty($ThisFileInfo['comments\u html']['title'])?内爆(“
”,$ThisFileInfo['comments\u html']['title']):$strisnall)。” .round($ThisFileInfo['audio']['bitrate']/1000)。'kbps “.$ThisFileInfo['playtime_string']。”; $xmlBody.=''; } } $xmlBody.=”; 标题('Content-type:text/xml'); echo$xmlBody;
尝试添加
文件内容('playlist.m3u',$xmlBody)至文件末尾-这将在
playlist.m3u
中保存播放列表的内容。您可以将其与您已有的所有代码一起使用,或者如果不需要,只需禁用/删除echo即可

至于您的第二个问题-为了使用新文件夹内容更新文件,您需要:

a) 让另一个进程监视器进行更改,然后调用此php脚本/文件 b) 在您的服务器上 或
c) 通过调用例如
http://localhost/my-m3u-generator.php

按照您的建议添加了额外的代码并删除了echo,但运行了代码,没有创建.m3u文件。尚未尝试第二个建议。可能您没有在该文件夹中保存新文件的权限。解决方法之一是手动创建文件
playlist.m3u
,一旦更改其权限,脚本就可以访问它(您可以使用0777进行尝试,然后再进一步涉猎权限),然后重新运行脚本。