手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2008年05月的文章

妖异的PHP BUG:basename

从PHP3开始。basename就存在于PHP之中,功能嘛。不用说了,就是用来取文件名。至于它不支持中文这点我也不谈了。问题是在PHP5.0.5这个环境里,居然有的时候会没有返回值。实在是太妖了。

由于在写的函数里,文件名是basename('/aaa/bbb/ccc')这样取出ccc后,再设定名称为:ccc.php,结果include的时候,偶尔会抛出异常:加载 .php无效 ,一直以为是代码写的有问题,没料到。。。竟然是basename偶尔不返回值?

到bugs.php.net看了一下,没有这个BUG,我也实在没有办法确认它到底是和服务器有关呢?还是纯粹就是这么一个BUG,现在我换成pathinfo来处理了,利用pathinfo来得到值,最后再组合成文件名称。

为SUPESITE添加背景音乐

如今supesite的市场占有率随着discuz的市场占有率提高而增大了不少,他方便了很多做站的人员,毕竟只需要把论坛的数据提取出来就是一个网站了。确实方便了不少做垃圾站的朋友。

不过,还是有很多正规做站的朋友们也在使用它,主要还是因为他自带了很多有用的功能,所以才能够这么吸引人。

让很多个人站长无奈的是,SUPESITE的编辑器非常恶心,功能也不算强大,但却不得不用。比如无法为自己的页面添加音乐啥的(当然,你也许会说,它的编辑器不是允许插入WM和RM的播放器的吗?可是这并不能让我满意。)

在看到WP有flash的MP3播放插件时,不禁让我想到了将他挖出来做成SS编辑器的插件,经过调试,基本可行。

1、下载播放器插件的压缩包并解压

2、修改audio-player.js,加上部分内容,使之内容为:

JavaScript代码
  1. var ap_instances = new Array();   
  2.   
  3. function ap_stopAll(playerID) {   
  4.     for(var i = 0;i<ap_instances.length;i++) {   
  5.         try {   
  6.             if(ap_instances[i] != playerID) document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 1);   
  7.             else document.getElementById("audioplayer" + ap_instances[i].toString()).SetVariable("closePlayer", 0);   
  8.         } catch( errorObject ) {   
  9.             // stop any errors   
  10.         }   
  11.     }   
  12. }   
  13.   
  14. function ap_registerPlayers() {   
  15.     var objectID;   
  16.     var objectTags = document.getElementsByTagName("object");   
  17.     for(var i=0;i<objectTags.length;i++) {   
  18.         objectID = objectTags[i].id;   
  19.         if(objectID.indexOf("audioplayer") == 0) {   
  20.             ap_instances[i] = objectID.substring(11, objectID.length);   
  21.         }   
  22.     }   
  23. }   
  24.   
  25. var ap_clearID = setInterval( ap_registerPlayers, 100 );   
  26.   
  27. function get_audioplayer( flashfile , flashvars ){   
  28.     if(arguments.length != 2){   
  29.         alert('对不起,函数需要接受两个参数');   
  30.     }   
  31.     if ( (typeof flashvars != 'object' )|| (typeof flashvars.soundFile == 'undefined') ){   
  32.         alert('第二个参数必须是一个对象,而且该对象必须有soundFile的属性');   
  33.     }   
  34.     var flash_vars = '';   
  35.     var flashobject = "<object type='application/x-shockwave-flash' data='" + flashfile+ "' id='audioplayer1' height='24' width='290'>";   
  36.     flashobject += "<param name='movie' value='" + flashfile+ "'>";   
  37.     flashobject += "<param name='FlashVars' value='";   
  38.     iftypeof flashvars.playerID == 'undefined'){  
  39.         flashvars.playerID = 1;  
  40.     }  
  41.     for (var var_name in flashvars){  
  42.         flash_vars += var_name + "=" + flashvars[var_name] + "&";  
  43.     }  
  44.     flashobject += flash_vars + "'>";   
  45.     flashobject += "<param name='quality' value='high'>";   
  46.     flashobject += "<param name='menu' value='false'>";   
  47.     flashobject += "<param name='wmode' value='transparent'>";   
  48.     flashobject += "</object>";   
  49.     return flashobject;   
  50. }   
  51. function set_audioplayer(flashfile , flashvars ,  elem ){   
  52.     flashobject = get_audioplayer(flashfile , flashvars);   
  53.     if ( typeof elem == 'undefined'){   
  54.         document.write( flashobject );   
  55.     }else{   
  56.         document.getElementById(elem).innerHTML = flashobject ;   
  57.     //  document.getElementById(elem).innerText = flashobject ;   
  58.     }   
  59. }  

3、在SS的编辑器里,选中“源代码”,在编辑框里输入:

XML/HTML代码
  1. <div id='audio_file' style="display:none">aaa.mp3</div>  

当你取消选择源代码时,上面的内容已经变为

XML/HTML代码
  1. <DIV id=audio_file style="DISPLAY:none">aaa.mp3</DIV>  

很多东西都变掉了。。。。不过没关系

4、在内容页的模版里加载刚才的JS

XML/HTML代码
  1. <script src='./xxx/xxx/audio-player.js'></script>  
  2. <script>  
  3. try   
  4. {   
  5.     var audio = document.getElementById('audio_file');   
  6.     if(audio.innerText != ''){   
  7.         var audio_flash = './player.swf';   
  8.         var audio_vars = {};   
  9.         audio_vars.soundFile = audio.innerText;   
  10.         audio_vars.loop = 'yes';   
  11.         audio_vars.autostart = 'yes';   
  12.         set_audioplayer( audio_flash , audio_vars );   
  13.     }   
  14. }   
  15. catch (e){}   
  16. </script>  

现在看看,是不是你的歌曲出来了?

下面说明一下FLASH文件的下载地址:

http://www.1pixelout.net/download/audio-player.zip

上面这个地址是下载源码包的,如果想知道怎么样更好的配置播放器,也就是说为audio_vars增加更多的属性,你可以参考这个网站:

http://www.macloo.com/examples/audio_player/,然后,几乎所有的属性都可以从这页得到:

http://www.macloo.com/examples/audio_player/options.html

祝福大家使用愉快

测试MP3播放器

测试MP3播放器,如果有用的话,以后就用它来播放我喜欢的MP3了

Tags: 测试

上班第一天

五一短假过后的上班第一天。

五一回顾:

一日看了个电影《钢铁侠》,还不错哦

二日居然还要上课,痛苦啊。。。同日,老婆的哥哥结婚,又喝多了我。。。

三日一日无事,本来想为有线通续费再装个机顶盒的,可是东方有线开的单子竟然是新装单,于是又没装。恰好又是结婚一周年(其实是婚礼一周年),陪老婆出去逛了一下。

毕福剑有五一乐三天,我虽然没有什么好乐的,但也是要做个纪念

今天是4号,上班了。。。

精力还算是挺充沛的,精神状态也挺良好。继续努力。。。(要搬楼下去了)

节日快乐

五一国际劳动节,离奥运开幕还有99天。

在这个忙里偷闲的时刻,祝大家节日快乐

Tags: 劳动节, 快乐

Records:201234