php 在 cli 脚本中读取 id3 标签的编码问题
我正在尝试获取 php cli 脚本来浏览文件夹,获取 id3 标签,这些标签采用西里尔文的 utf8 格式,但在数据库中。当我执行脚本时,我在数据库字段中获得原始 utf,例如 "Àëáåíà"
这是脚本
<?
set_time_limit(0);
include('classes/adodb5/adodb.inc.php');
include ('classes/id3/getid3.php');
$ftpdir = "/radio/unprocessed/";
$processeddir = "/radio/music";
//set up the database
$conn = &ADONewConnection('mysql');
$conn->PConnect('localhost','root', '**********','radio');
$utf = $conn->Execute("SET NAMES 'UTF8';");
$charset = $conn->Execute("CHARSET UTF8;");
//function for processing the actual file
function processmp3($fn, $folder, $conn){
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($folder.$fn);
//this is needed to consolidate all tag formats
getid3_lib::CopyTagsToComments($ThisFileInfo);
if (array_key_exists('artist', $ThisFileInfo['comments_html'])&& array_key_exists('artist', $ThisFileInfo['comments_html'])){
$artist=($ThisFileInfo['comments_html']['artist'][0]);
$title=($ThisFileInfo['comments_html']['title'][0]);
}else{$artist ='not defined'; $title="not defined";}
//random name
//random name
$rand_name = md5(time()).rand(1,1000).".mp3";
//movefile
//rename($folder.$fn,'/radio/music/'.$rand_name);
//put in DB
$insert = $conn->Execute('INSERT INTO unprocesseds VALUES("","'.$artist.'","'.$title.'","'.$rand_name.'","'.$fn.'");');
}
//cyccle through contents
if($handle = opendir($ftpdir)){
while(false !== ($file = readdir($handle))){
$type = mime_content_type($ftpdir.$file);
if ($type=='audio/mpeg'){processmp3($file, $ftpdir, $conn);}
else {
if(is_file($ftpdir.$file)){unlink($ftpdir.$file);}
}
}
}
closedir($handle);
i am trying to get a php cli script to go through a folder, get the id3 tags, which are in utf8 in cyrillic and but it in the database. when i execute the script i get the raw utf in the DB fields like "Àëáåíà"
here is the script
<?
set_time_limit(0);
include('classes/adodb5/adodb.inc.php');
include ('classes/id3/getid3.php');
$ftpdir = "/radio/unprocessed/";
$processeddir = "/radio/music";
//set up the database
$conn = &ADONewConnection('mysql');
$conn->PConnect('localhost','root', '**********','radio');
$utf = $conn->Execute("SET NAMES 'UTF8';");
$charset = $conn->Execute("CHARSET UTF8;");
//function for processing the actual file
function processmp3($fn, $folder, $conn){
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($folder.$fn);
//this is needed to consolidate all tag formats
getid3_lib::CopyTagsToComments($ThisFileInfo);
if (array_key_exists('artist', $ThisFileInfo['comments_html'])&& array_key_exists('artist', $ThisFileInfo['comments_html'])){
$artist=($ThisFileInfo['comments_html']['artist'][0]);
$title=($ThisFileInfo['comments_html']['title'][0]);
}else{$artist ='not defined'; $title="not defined";}
//random name
//random name
$rand_name = md5(time()).rand(1,1000).".mp3";
//movefile
//rename($folder.$fn,'/radio/music/'.$rand_name);
//put in DB
$insert = $conn->Execute('INSERT INTO unprocesseds VALUES("","'.$artist.'","'.$title.'","'.$rand_name.'","'.$fn.'");');
}
//cyccle through contents
if($handle = opendir($ftpdir)){
while(false !== ($file = readdir($handle))){
$type = mime_content_type($ftpdir.$file);
if ($type=='audio/mpeg'){processmp3($file, $ftpdir, $conn);}
else {
if(is_file($ftpdir.$file)){unlink($ftpdir.$file);}
}
}
}
closedir($handle);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在我的具体情况下,发生了两件事。
In my particular case 2 things were happening.