php获取文本内容并随机排列

作者:matrix 发布时间:2014-03-09 分类:零零星星

获取1.txt 2.txt 3.txt这三个文本文档里面每行的内容,并且打乱顺序输出。

$array=file('1.txt');  
$array2=file('2.txt');  
$array3=file('3.txt');  
for($i=2;$i<4;$i++){  
$ass = "array".$i;  
$ac = $$ass;  
$as=count($$ass);  
for($s=0;$s<$as;$s++){  
$cs=count($array);  
$array[$cs]=$ac[$s];  
}  
}  
//var_dump($array);  
shuffle($array);//随机排列数组  
//print_r($array);  
echo implode("</br>",$array);  

说明:
上面的代码放在php文件的<?php和?>标签之中。
txt和php文件放在同一目录。

优酷地址解析php源码

作者:matrix 发布时间:2014-03-04 分类:兼容并蓄 零零星星

优酷广告很烦人,还好有些脚本可以搞定。

譬如:http://userscripts.org/scripts/show/119622  效果很不错!

chrome的使用说明:https://www.hhtjim.com/to-youku-ad-script.html

此页面的源码已失效,最新>>php源码优酷视频解析更新 

解析优酷视频过程:

例:http://v.youku.com/v_show/id_XNjc1MDI4Nzg0.html

1.获取视频信息

http://v.youku.com/player/getPlayList/VideoIDS/XNjc1MDI4Nzg0

打开后可以看到视频相关信息。

需要其中的seed值、streamfileids里面hd2,mp4或者flv的值以及segs里对应k的值。

hd2、mp4、flv分别代表超清,高清以及标清。

2.拼接下载地址

最终形式:http://f.youku.com/player/getFlvPath/sid/00_00/st/$P0/fileid/$P1?k=$P2
$P0:如果选择mp4(即高清)则为mp4,其余为flv。
$P1:由解密函数getFileID()得到:(php版本)

function getFileIDMixString($seed)
        {
            $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890";
            $len = strlen($source);
            for ($i = 0; $i < $len; $i++)
            {
                $seed = ($seed * 211 + 30031) % 65536;
                $index = floor($seed / 65536 * strlen($source));
                $mixed .= $source[$index];
                $source = str_replace($source[$index],'',$source);
            }
            return $mixed;
        }
function getFileID( $fileid,  $seed  )
        {
            $mixed = getFileIDMixString($seed);
            $ids = explode("*",$fileid);
            for ($i = 0; $i < count($ids) - 1; $i++)
            {
                $idx = $ids[$i];
                $realId .= $mixed[$idx];
            }
            return $realId;
        }

说明:此为解密的关键函数,不是我写的,完全是依葫芦画瓢按照下面的C#代码而来:(解密函数getFileID()C#版本)

public static String getFileID(String fileid, double seed)
        {
            String mixed = getFileIDMixString(seed);
            String[] ids = fileid.Split('*');
            StringBuilder realId = new StringBuilder();
            int idx;
            for (int i = 0; i < ids.Length - 1; i++)
            {
                idx = int.Parse(ids[i]);
                realId.Append(mixed[idx]);
            }
            //Console.Write(realId.ToString());
            return realId.ToString();
        }
        public static String getFileIDMixString(double seed)
        {
            StringBuilder mixed = new StringBuilder();
            StringBuilder source = new StringBuilder("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890");
            int index, len = source.Length;
            for (int i = 0; i < len; ++i)
            {
                seed = (seed * 211 + 30031) % 65536;
                index = (int)Math.Floor(seed / 65536 * source.Length);
                mixed.Append(source[index]);
                source.Remove(index, 1);
            }
            return mixed.ToString();
        }

$P2:这个是segs里对应k的值。
如果选择flv(即标清)那么可以找到
"flv":[{"no":0,"size":"9932910","seconds":"277","k":"4be592cfae8eea21282826e4","k2":"167f8074bfb7bdca7"}]}
其中的4be592cfae8eea21282826e4就是$P2。

得到de $P0 、$P1和 $P2,拼接为视频地址:http://f.youku.com/player/getFlvPath/sid/00_00/st/$P0/fileid/$P1?k=$P2

如果视频有很多分段,变更一下$P2就行。

到这里就给个获取优酷地址的php源码:

源码[已经失效]:

提示: 此处内容需要评论本文后才能查看.

调用说明:/XXX.php?id=优酷视频的ID?d=1
d=1表示标清(flv),2表示高清,3表超清.若不写?d=*则默认输出FLV的画质
有些细节处的修改没有写出来,不过php里都是搞好了的。
标清测试:


高清测试:


超清测试:

另附接口:

优酷外链接口(wap地址),这个很简单:

视频:http://v.youku.com/v_show/id_XNjc1MDI4Nzg0.html

外链:

http://m.youku.com/wap/pvs?format=3gphd&id=XNjc1MDI4Nzg0

56网:

视频:ht tp://www.56.com/u30/v_MTA3MDk0Nzg3.html

外链:

http://vxml.56.com/html5/MTA3MDk0Nzg3/     (算的上高清)

http://vxml.56.com/html5/MTA3MDk0Nzg3/?src=3g&res=qvga   (也就是手机上用的)

参考:http://blog.csdn.net/feige2008/article/details/8198434

2月份的峨眉雪

作者:matrix 发布时间:2014-02-17 分类:零零星星

峨眉雪,在乐山地区来讲这是一瓶本地特产的饮料。昨去了峨眉山,也就峨眉雪了。
山路走了一段距离。

康熙游山摩崖石刻

康熙游山摩崖石刻

康熙游山摩崖石刻02

康熙游山摩崖石刻

开始从雷洞坪徒步,用了3小时才到的金顶。够呛的
2月份的峨眉雪03
2月份的峨眉雪05
2月份的峨眉雪07

那是个好耍,爬的你好耍。011

那是个好耍,爬的你好耍。

那是个好耍,爬的你好耍09

阅读剩余部分 »

利用QQ空间查询接口的网页小应用

作者:matrix 发布时间:2014-02-15 分类:零零星星

利用QQ空间查询接口的网页小应用

qq空间api可以查询到相关QQ号码的很多信息。查询QQ空间背景音乐是最常见的了

QQ空间背景音乐接口

  webapp示例  下载

http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?g_tk=1916754934&json=1&uin=QQ号码

json=1表开启json格式,0表xml格式

收藏音乐查询接口

webapp示例  下载

http://qzone-music.qq.com/fcg-bin/fcg_music_fav_getinfo.fcg?p=0.519638272547262&g_tk=1284234856&dirinfo=0&dirid=1&uin=QQ号码

QQ音乐接口:

http://tsmusic24.tc.qq.com/ qq音乐歌曲id.mp3

http://tsmusic24.tcdn.qq.com/ qq音乐歌曲id.mp3

qq音乐歌曲id为上面接口获取到的id

http://tsmusic24.tc.qq.com/ qq音乐urlID.wma

http://tsmusic24.tcdn.qq.com/ qq音乐urlID.wma
使用:

QQ空间背景音乐里很多类似stream7.qqmusic.qq.com/12169471.wma的地址,很多时候直接下载是没法的。

这的12169471即为qq音乐urlID,转换为可下载地址:http://tsmusic24.tc.qq.com/12169471.wma  这也就达到了目的。

其实搜搜音乐里的也差不多。速度很不错的!

另附(有些需要权限):

QQ空间信息:

http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=QQ号码

比如http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=858123

_Callback(
{"uin":858123,
"rflag":-1,
"pycertified":0,
"qzone":1,
"intimacyScore":0,
"nickname":"子琪",
"realname":"",
"smartname":"",
"logolabel":"1390926521",
"commfrd":0,
"friendship":0,
"offsetBirth":80,
"isFriend":0,
"bitmap":"08549500050ec001",
"score":14265,
"avatarUrl":"http://qlogo4.store.qq.com/qzone/858123/858123/100?1390926521",
"specialrelation":0});

uin表QQ号

nickname表昵称

qzone:1表qzone已开通

score 表积分

avatarUrl 表空间头像地址

QQ空间日志列表:

http://b1.qzone.qq.com/cgi-bin/blognew/blog_get_titlelist?uin=QQ号码

QQ空间日志内容:

http://b1.qzone.qq.com/cgi-bin/blognew/blog_get_data?uin=QQ号码&blogid=列表中的blogid

QQ头像:

http://q1.qlogo.cn/g?b=qq&s=100&nk=QQ号码

s=100表开启100*100px大小

http://q1.qlogo.cn/headimg_dl?bs=qq&spec=100&dst_uin=QQ号码

spec=100表开启100*100px大小

 

Clipping Magic在线抠图去背景工具

作者:matrix 发布时间:2014-02-11 分类:零零星星

移除图片背景Remove Image Backgrounds

地址:http://clippingmagic.com/

在线抠图利器。对于ps不会折腾的,很方便。

简单操作:

打开官网,虚线框的Drag and Drop Image Here即为拖放图片到这里。

图片上传完成后会出现一排的按钮。主要使用的也就这:

图片上传完成后会出现一排的按钮

红色-:抠背景使用

绿色+:圈保留区域

蓝色橡皮擦

蓝色的Download下载按钮,点击下载按钮后提示 Generating result...

Download下载按钮

之后点击Download Result下载生成后的图片。

点击Download Result下载生成后的图片

我抠的非常渣。

抠的非常渣

官网有更详细的操作教程:

http://clippingmagic.com/tutorials/basics  我也看不懂,Google翻译

再改外链转换工具

作者:matrix 发布时间:2014-02-04 分类:零零星星

感觉以前的界面按钮有些小,正好改成3.0.3的css前端框架试试~。

web app新界面

>>外链转换工具

资源 :

Bootstrap中文网: http://www.bootcss.com/  里面各种开源,各种介绍~

百度CDN公共库:http://developer.baidu.com/wiki/index.php?title=docs/cplat/libs

用的其中Bootstrap v3.0.3:http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css

UI变动: 阅读剩余部分 »

wordpress免插件实现TAG Category自动添加链接

作者:matrix 发布时间:2014-01-29 分类:Wordpress 零零星星

此功能可以由WP keyword Link Plugin插件实现的,不过要非插件化只有另找。

网上一大把代码我这都不能用。不知道为何。

豆腐君扒的代码,真心没法用。幸好懂点正则。自己慢慢改。

改的时候发现网上的代码WP keyword Link Plugin插件的wp_keywordlink.php部分有9成相似。参照wp_keywordlink.php那该好多了。

代码:

/** 
 * TAG Category自动添加链接 by 不懂. 20140129 修改 
 */  
add_filter('the_content', 'Category_tag_link', 1);  
function tag_sort($a, $b)  
{  
    if ($a->name == $b->name) return 0;  
    return (strlen($a->name) > strlen($b->name)) ? -1 : 1;  
}  
function Category_tag_link($content)  
{  
    /** 
     * --------------------------------------配置处-------------------------------------------- 
     */  
    $match_num_from = 1; //配置:一个关键字少于多少不替换   
    $match_num_to = 2; //配置:一个关键字最多替换,建议不大于2  
    $case = true ? "i" : ""; //配置:忽略大小写 true是开,false是关  
    $get_the_category=is_array(get_the_category())?get_the_category():array();  
    $get_the_tags=is_array(get_the_tags())?get_the_tags():array();  
    $posttags = array_merge($get_the_tags, $get_the_category); //合并TAG & CAT数组 (array)强制转换数组,防止报错  
    if ($posttags)  
    {  
        usort($posttags, "tag_sort"); //重新排序 回调函数tag_sort  
        foreach($posttags as $tag)  
        {  
            $link = $tag->category_count ? esc_url(get_category_link($tag->term_id)) : esc_url(get_tag_link($tag->term_id)); //TAG & CAT 合并URL  
            $keyword = $tag->name; //TAG name  
            $cleankeyword = stripslashes($keyword);  
            $url = "<a href=\"$link\" title=\"" . str_replace('%s', addcslashes($cleankeyword, '$'), __('View all posts in %s')) . "\""; //查看 %s 中的全部文章。__()函数WordPress本地化翻译。  
            $url .= 'target="_blank"';  
            $url .= ">" . addcslashes($cleankeyword, '$') . "</a>";  
            $limit = rand($match_num_from, $match_num_to);  
            $ex_word = preg_quote($cleankeyword, '\'');  
            $content = preg_replace("'(<a[^>]+>)(.*)($ex_word)(.*)(</a[^>]*>)'U" . $case, '$1$2*&%*$4$5', $content); //a标签,免混淆处理  
            $content = preg_replace('|(<img)(.*?)(' . $ex_word . ')(.*?)(>)|U' . $case, '$1$2*&%*$4$5', $content); //img标签  
            $cleankeyword = preg_quote($cleankeyword, '\'');  
            $regEx = '"(?!((<.*?)|(<a.*?)))(' . $cleankeyword . ')(?!(([^<>]*?)>)|([^>]*?</a>))"s' . $case; //正则匹配  
            $content = preg_replace($regEx, $url, $content, $limit);  
            $content = str_replace('*&%*', stripslashes($ex_word), $content); //免混淆还原处理  
        }  
    }  
    return $content;  
}  

说明:代码放到WordPress主题functions.php文件的?>前面。

配置信息在15-17行处。

此版本增加Category(文章分类)链接,忽略大小写功能。比网上传的好点。哈哈。ok  丢掉WP keyword Link Plugin

示例见本站任意文章页面。或者这里:免插件

不方便copy的php下载地址:

http://www.400gb.com/file/55854122

折腾完觉得正则真TM牛逼。好菜鸟啊


记:

遇到Warning : preg_replace()  [function.preg-replace ]: Unknown  modifier 'a'这类问题。实质是正则的边界符没弄好的缘故。

一般的边界符号是用 | 或者 /,是在开头和结尾出现的。然而正则表达式里也出现了边界符,系统会把它当做边界,这样边界后面出现的以a开头的不明字符串就会成为正则修正符,自然是不会别识别的。也就导致报错。

错误例:

$content = preg_replace("/(<a[^>]+>)(.)($ex_word)(.)(</a[^>]>)/U" . $case, '$1$2&%*$4$5', $content);

改成:/(<a[^>]+>)(.)($ex_word)(.)(<\/a[^>]*>)/U

|(<a[^>]+>)(.)($ex_word)(.)(</a[^>]*>)|U

'(<a[^>]+>)(.)($ex_word)(.)(</a[^>]*>)'U

都ok啦。边界符也不是固定的,'、"照样可以用。

Warning: array_merge() [function.array-merge]: Argument #1报错, array_merge()的参数不是数组就会导致此类ERROR。

可在参数前面加(array)来强制转换为数组,建议在 array_merge() 前判断是否为数组,否则以空数组输出到array_merge()中解决。

正则入门级教程:http://www.oschina.net/question/12_9507  很实用的~

正则表达式 问号 冒号 ?:使用 http://blog.csdn.net/hoping23/article/details/8479700

php正则表达式中的修正符说明:http://blog.csdn.net/taipingliebeiluo/article/details/5872878

WordPress中的()和_e()函数的作用:http://demon.tw/software/WordPress--_e.html

零宽断言:http://jjdoor.blog.163.com/blog/static/184780342012318917389/

参考:http://bbs.csdn.net/topics/90492431

http://blog.csdn.net/sunking18/article/details/6415705

BrowserShots浏览器兼容在线测试

作者:matrix 发布时间:2014-01-24 分类:零零星星

图片4727-BrowserShots浏览器兼容在线测试

什么是BrowserShots

 

传送门:http://browsershots.org/

 

BrowserShots这个在线工具早很多年就有了,以前在free8上看到的。

BrowserShots上可以了解自己的网页在各种不同的操作系统不同的浏览器下的兼容性,可以任意选择操作系统及浏览器。

输入URl,勾选所需OS下的浏览器,提交。Enter URL Here 这点英文你应该懂的。

下方的Select可以选择操作系统、浏览器引擎、Flash启用、javascript启用、颜色、窗口等。貌似还有接口,反正很屌很强大!

提交后等待一定时间系统会把浏览器截图给你查看。很不错~

阅读剩余部分 »