php 文件中随机取出一条数据四种方法
代码如下 | 复制代码 |
<?php //第一种方法: $line = getrandline1('test.txt'); function getrandline1($filename) { $linenum = 0; $fh = fopen($filename, 'r'); while(!feof($fh)) { if($rowcontents = fgets($fh)) { $linenum++; $contens[] = $rowcontents; } } $randline = mt_rand(0, $linenum - 1); $line = $contens[$randline]; fclose($fh); return $line; } //第二种方法: $line = getrandline2('test.txt'); function getrandline2($filename) { $contents = file('test.txt'); $linenum = count($contents); $randline = mt_rand(0, $linenum - 1); $line = $contents[$randline]; return $line; } //第三种方法: $line = getrandline3('test.txt'); function getrandline3($filename) { $contents = file('test.txt'); shuffle($contents); return $contents[0]; } //第四种方法: $line = getrandline4('test.txt'); function getrandline4($filename) { $linenum = 0; $fh = fopen($filename, 'r'); while(!feof($fh)) { if($linecontents = fgets($fh)) { $linenum++; $randint = (mt_rand(1, 1000000 * $linenum) - 1)/1000000); if($randint < 1) { $line = $linecontents; } } } fclose($fh); return $line; } ?> |
关于 SESSION 在 php 中的应用是必不要少的,最重要的功能之一,SESSION 在网络应用中,称为“会话”,我们通常理解为存储特定用户会话所需的信息,这样,当用户在网站页面之间跳转时,存储的 SESSION 值不会丢失,而是在整个用户会话中一直存活下去。通俗一点讲,就是当用户A上网时,会创建一个ID(a)值进行保存下来,如果你的ID(A)值没有进行注销,下次上网时,这个网站还会记得你的ID(A)值,这个时候就可以在网上进行调用你的ID(A)值了,比如欢迎您ID(A)值再一次访问。
关于在 PHP 中应用 SESSION 值是很简单的,只要在顶端提前输入 session_start() 开始会话即可,下面就可以进行使用 SESSION 了,这只是小网站的应用方法,实际上,SESSION 自身还有许多属性,比如 SESSION周期,调用SESSION,SESSION数据有效期,SESSION保存,SESSION注销等等,如果有了这些属性,看起来才算是一个比较规范的SESSION应用会话。
下面是一个完整的 Session 类,整合了 Session 最基本的属性值,其中,打开,关闭与清理是符合php编程规范的,这也是一个很好的习惯。小小的说明一下,如果网站不是大量使用 Session 类,基本上就没必要使用 SESSION 类了。
代码如下 | 复制代码 |
|
下面我们再看一个php session购物车类
代码如下 | 复制代码 |
<?php /* /* /* /* //如果减少后,数量为0,则把这个商品删掉 /* /* $sum = 0; /* /* |
先看一个简单的
然后我用PHP实现了这个功能,我觉得用PHP来做这项工作简直是一种享受!使用其提供的强大的HTML页面处理函数和正则表达式,短短的几行代码就能搞定这个功能。
贴一下关键代码:
代码如下 | 复制代码 |
<?php //获取优酷页面中的flash地址 <?php $url=$_SERVER["QUERY_STRING"]; |
比如这个文件我们存为 test.php,那么我们只需要运行 test.php?优酷视频的url 就可以解析出FLASH地址了。
思路很简单,就是先看看优酷视频网页的HTML代码里关键FLASH地址那段的特征。随便找个网页,比如我们可以看到这一段:
代码如下 | 复制代码 |
<div class="item"><span class="label">flash地址: </span> <input type="text" id="link2" value="http://player.youku.com/player.php/sid/XMTU1MzcxMzAw/v.swf" /> |
然后使用正则表达式来将其中的地址段匹配掉,就OK了,上面只是单个的,后来找到一个升级的方法,可以自动获取各大视频网站flash视频播放地址。
目前已支持新浪播客、优酷网、土豆网、酷6网、搜狐视频、56网、奇艺网、凤凰网等视频网站的视频播放页链接。
代码如下 | 复制代码 |
<?php if (!empty($_GET['url'])) { $web_video = new free_flash_video(); $web_video->index(); } /** * 获取视频地址 * @author qiufeng <fengdingbo@gmail.com> * @link http://www.fengdingbo.com * */ class free_flash_video{ public function index() { // 获取正常视频地址 $url = $_GET['url']; if ($url) { $parse = parse_url($url); isset($parse['host']) && $host = $parse['host']; $methods = array( "www.tudou.com" => "tudou", "v.youku.com" => "youku", "v.ku6.com" => "ku6", "tv.sohu.com" => "sohu", "video.sina.com.cn" => "sina", "www.56.com" => "five_six", "www.iqiyi.com" => "iqiyi", "v.ifeng.com" => "ifeng", "www.yinyuetai.com" => "yinyuetai", ); isset($methods[$host]) && print_r($this->$methods[$host]($url)); } } /** * 优酷网 * // http://www.youku.com * @param string $url */ private function youku($url) { preg_match('/id_(.*).html/', $url,$url); if (isset($url[1])) { return "http://static.youku.com/v/swf/qplayer.swf?VideoIDS={$url[1]}&=&isAutoPlay=true&embedid"; } } /** * 土豆网 * // http://www.tudou.com * @param string $url */ private function tudou($url) { $data = file_get_contents($url); // 匹配真实url地址所需的iid编号 preg_match('/iid:(.*)/', $data, $result); if (isset($result[1])) { $url = trim($result[1]); return "http://www.tudou.com/player/skin/plu.swf?iid={$url}"; } } /** * 酷6网 * // http://www.ku6.com * @param string $url */ private function ku6($url) { // 匹配真实url地址 preg_match('/show/(.*).{1}/', $url, $result); if (isset($result[1])) { return "http://player.ku6.com/refer/{$result[1]}/v.swf&auto=1"; } } /** * 搜狐视频 * // http://tv.sohu.com * @param string $url */ private function sohu($url) { $data = file_get_contents($url); // 匹配真实url地址 preg_match('/<meta property="og:video" content="(.*)"/>/', $data, $result); if (isset($result[1])) { return $result[1]; } } /** * 新浪播客 * // http://video.sina.com.cn * @param string $url */ private function sina($url) { $data = file_get_contents($url); // 匹配真实url地址 preg_match("/swfOutsideUrl:'(.*)',/", $data, $result); if (isset($result[1])) { return $result[1]; } } /** * 56网 * // http://www.56.com * @param string $url */ private function five_six($url) { // 取出视频所需key preg_match('/(v_.*).html/', $url, $result); if (isset($result[1])) { return "http://player.56.com/{$result[1]}.swf"; } } /** * 奇艺网 * // http://www.qiyi.com * @param string $url */ private function iqiyi($url) { $data = file_get_contents($url); // 取出视频所需key preg_match('/("videoId":"(.*)")|(data-player-videoid="(.*)")/U', $data, $result); if (isset($result[4])) { return "http://www.iqiyi.com/player/20130315154043/SharePlayer.swf?vid={$result[4]}"; } } /** * 凤凰网 * // http://www.ifeng.com * @param string $url */ private function ifeng($url) { // 取出视频所需key preg_match('/d+/(.*)./', $url, $result); if (isset($result[1])) { return "http://v.ifeng.com/include/exterior.swf?guid={$result[1]}&fromweb=sinaweibo&AutoPlay=true"; } } } ?> |
PHP API调用实例
代码如下 | 复制代码 |
/tools/web_video.php?url=视频页面地址 |
防止刷新或再交提交
所以就考虑增加一个参数来防止这类情况的发生,COOKIE和SESSION可供选择,不过 COOKIE是客户端的,如果人家禁用COOKIE的话,照样可以恶意刷新点击数。还是用SESSION的好,IP+URL参数的MD5值做 SESSION名
实现原理 设置 max_reloadtime =100; //设置页面刷新最长间隔时间
用户第一次打开页面 记录当前的时间保存在 session_start
用户第二次打开页面(判断 session_start是否存在) 用当前时间和 session_start 相减 得到差值 time_passed
当 time_passed < max_reloadtime 表示用户在指定时间内频繁刷新了 警告后直接退出
代码如下 | 复制代码 |
<?php |
防表单重复提交
代码如下 | 复制代码 |
<?php |
例,一个基于smarty演示版
代码如下 | 复制代码 |
|
10./////防止表单重复提交
在tpl模板中
代码如下 | 复制代码 |
1. <input type="hidden" name="code" value="{$code}"/> /*利用PHP的Session功能,也能避免PHP表单重复提交。Session保存在服务器端,在PHP运行过程中可以改变Session变量,下次访问这个变量时,得到的是新赋的值,所以,可以用一个Session变量记录表单提交的值,如果不匹配,则认为是用户在重复提交
//在接收页代码如下:
|
申请自定义菜单
服务号可以申请自定义菜单;使用QQ登录的公众号,可以升级为邮箱登录;使用邮箱登录的公众号,可以修改登录邮箱;群发消息可以同步到腾讯微博。
微信公众平台账号api程序
代码如下 | 复制代码 |
<?php
public function valid() /** public function responseMsg() /** private function get_access_token() return "获取access_token错误"; /** } /** /** }
private function checkSignature() ?> |
相关文章
- 下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
Jupyter Notebook读取csv文件出现的问题及解决
这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
- 有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
- 这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
- 这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
php无刷新利用iframe实现页面无刷新上传文件(1/2)
利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21