PHP嗅探youku视频的真实flv文件地址!
这个是借力打力,只是抓去朋友网的内容!!!
不过相当好用哦!
看代码:
代码如下 | 复制代码 |
<?php |
这个测试出来的只是swf文件并不是我们要的flv文件了,后来参考一站长的写法进行了改进
核心代码:
代码如下 | 复制代码 |
<?php function fetch_youku_flv($url){ preg_match("#id_(.*?).html#",$url,$out); $id=$out[1]; $content=get_curl_contents('http://v.youku.com/player/getPlayList/VideoIDS/'.$id); $data=json_decode($content); foreach($data->data[0]->streamfileids AS $k=>$v){ $sid=getSid(); $fileid=getfileid($v,$data->data[0]->seed); $one=($data->data[0]->segs->$k); if($k == 'flv' || $k == 'mp4') return "http://f.youku.com/player/getFlvPath/sid/{$sid}_00/st/{$k}/fileid/{$fileid}?K={$one[0]->k}"; continue; } } function get_curl_contents($url, $second = 5){ if(!function_exists('curl_init')) die('php.ini未开启php_curl.dll'); $c = curl_init(); curl_setopt($c,CURLOPT_URL,$url); $UserAgent=$_SERVER['HTTP_USER_AGENT']; curl_setopt($c,CURLOPT_USERAGENT,$UserAgent); curl_setopt($c,CURLOPT_HEADER,0); curl_setopt($c,CURLOPT_TIMEOUT,$second); curl_setopt($c,CURLOPT_RETURNTRANSFER, true); $cnt = curl_exec($c); $cnt=mb_check_encoding($cnt,'utf-8')?iconv('gbk','utf-8//IGNORE',$cnt):$cnt; //字符编码转换 curl_close($c); return $cnt; } function getSid() { $sid = time().(rand(0,9000)+10000); return $sid; } function getkey($key1,$key2){ $a = hexdec($key1); $b = $a ^ 0xA55AA5A5; $b = dechex($b); return $key2.$b; } function getfileid($fileId,$seed) { $mixed = getMixString($seed); $ids = explode("*",$fileId); unset($ids[count($ids)-1]); $realId = ""; for ($i=0;$i < count($ids);++$i) { $idx = $ids[$i]; $realId .= substr($mixed,$idx,1); } return $realId; } function getMixString($seed) { $mixed = ""; $source = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/:._-1234567890"; $len = strlen($source); for($i=0;$i< $len;++$i){ $seed = ($seed * 211 + 30031) % 65536; $index = ($seed / 65536 * strlen($source)); $c = substr($source,$index,1); $mixed .= $c; $source = str_replace($c, "",$source); } return $mixed; } |
调用方法:
代码如下 | 复制代码 |
|
访问: http://xiaomizhou.net/demo/flv.php?url=http://v.youku.com/v_show/id_XMzg2OTQ3MjQw.html
输出的结果是:http://f.youku.com/player/getFlvPath/sid/138035737110468_00/st/flv/fileid/03000201004F97EF4A2E350467A09DB266E872-5522-225F-DC45-40B4E1F9BE49?K=c2a4327df2bb5a65261d40ea
这个是可以直接下载的!!
微信公众平台的接口开发是一个现在比较常用的功能了,很多的人都会去了解一下微信公众平台一些简单开发应用了,下面我来给大家介绍一篇入门级别的例子。这段时间都在忙于微信公众号平台来发,现在已经接近尾声了,所以对于微信开发平台的接口如何使用,在这里也唠刀一两句。
微信平台的开发并不像你想像的那么难,无非就是数据的存取处理罢了。对于数据的存取,简单如留言板,存数据,我们通过表单向数据库提交数据以存入;取数据,通过查询语句从数据库取得。对于数据的存取,微信公众平台开放了各式各样的接口以满足不同类型的数据存取,这样,我们就可以通过接口间接地向微信公众平台的数据库存取数据了。
先来看一个创建菜单的接口
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
这个接口目前需要服务号才有权限,但是没有服务号的可以申请一个测试号(有限期一年)来测试。接口中的ACCESS_TOKEN是通过公众号(服务号或测试号)的AppID和AppSecret来获取,每个可以存取数据的接口都需要ACCESS_TOKEN。
接口是有了,但是怎么使用它来存取微信公众平台的数据呢?可以使用下面这个函数来调用:
代码如下 | 复制代码 |
function https_request($url,$data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } |
说明:这是一个php函数,$url是微信公众号的接口,$data是一个json格式的数据
使用方法:
取数据:https_request($url);
存数据:https_request($url,$data);
小结:在取数据时,https_request函数返回的是json格式的数据。存数据之前,如果$data不是json格式的,需要转化为json数据。
今天没事在研究一个功能但会用到strtotime函数了,这个我是把2014-07-8 0:0:0格式的转换时间戳了,这个例子非常的好用,下面来看个例子吧。实现功能
获取当半时间与用户给定的时间进行对比,然后判断是几天之内进行相关操作了
程序代码
代码如下 | 复制代码 |
<?php $d ='2014-01-09'; echo $ftime; echo date('Y-m-d',$ftime).'<br />'; if( round(($time - $ftime) / 86500,1)< 7 ) // 7天之内不允许复制 |
一聚教程网应用于一些比较简单的内容处理上了,在此我就不说出来了免得大得进行攻击我的网哦哈。
这个原理比较的简单就是用户第一次提交时我们记录提交用户的IP地址,这样如果用户在固定时间内再次提交表单就会提示重复提交了,这种做法通常用于在顶一下,支持一下这种应用中了,在防止数据重复提交是一个非常不好的选择哦。例子
代码如下 | 复制代码 |
<?php session_start(); |
还有办法就是
1:在页面生成随机码,也就是每次提交随机码都不一样,在提交的时候验证随机码!
2:在提交的时候,验证如果数据存在,就不提交了.
如果你想防止重复提交入库IP不是最好的办法,我们可以在数据库中查询是不是有相同记录并且IP是不是想同再进行处理,
例子
代码如下 | 复制代码 |
$sql ="select * from 表名 where buy_tel='电话' and IP='$ip' ";// and $time-buy_date<60 |
前期需要了解的知识点
move_uploaded_file()文件上传函数
代码如下 | 复制代码 |
if(move_uploaded_file($_FILES["filename"]["tmp_name"]) |
$_FILES php全局变量
$_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)
代码如下 | 复制代码 |
|
核心文件:
upimg.htm
代码如下 | 复制代码 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <body> </body> uploadf.php <?php if(!file_exists($path)) } else { |
调用示例文件:
testUpload.htm
代码如下 | 复制代码 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <body> </body> |
此程序不足之处分析
上传预览功能
代码如下 | 复制代码 |
function $(id){ |
这段代码其实就是一个鸡肋了,在有一些浏览器下是不兼容了,但不会影响到图片上传功能。
程序安全
对于在上传处我们并未进行数据大小限制与程序上传文件类型进行限制,这样可以利用它来上传一些像php文件,这样你的网站就不安全了哦。
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- 要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
- 又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
- 今天小编在这里就来给photoshop的这一款软件的使用者们来说下AI源文件转photoshop图像变模糊问题的解决教程,各位想知道具体解决方法的使用者们,那么下面就快来跟着小编...2016-09-14
- 这篇文章主要介绍了C++万能库头文件在vs中的安装步骤(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-23
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- 这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
- 这篇文章主要介绍了C#使用StreamWriter写入文件的方法,涉及C#中StreamWriter类操作文件的相关技巧,需要的朋友可以参考下...2020-06-25
ant design中upload组件上传大文件,显示进度条进度的实例
这篇文章主要介绍了ant design中upload组件上传大文件,显示进度条进度的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-29- 举一个案例:复制代码 代码如下:<?phpclass Downfile { function downserver($file_name){$file_path = "./img/".$file_name;//转码,文件名转为gb2312解决中文乱码$file_name = iconv("utf-8","gb2312",$file_name...2014-06-07
- 通常php.ini的位置在:复制代码 代码如下:/etc目录下或/usr/local/lib目录下。如果你还是找不到php.ini或者找到了php.ini修改后不生效(其实是没找对),请使用如下办法:1.新建php文件,写入如下代码复制代码 代码如下:<?phpe...2014-05-31
- 该例子使用 BinaryStream 和 BinaryWriter 对二进制文件进行读写操作先上代码再根据我理解的所分享给各位朋友...2020-06-25