php页面函数设置超时限制

 更新时间:2016年11月25日 17:25  点击:2226
碰到页面程序执行超时时会提醒Fatal error: Maximum execution time of 300 seconds exceeded 是因为程序执行时间超过了最大允许执行时间,解决办法我总结了好几个大家选择适合自己的吧。

对于函数我们可以常用下面方法,直接给函数设置超时时间。

 代码如下 复制代码
declare(ticks = 1);
    function a(){
    sleep(10);
    echo "a finishi ";
}
function b(){
    echo "Stop ";
}
function c(){
    usleep(100000);
}
 
function sig(){
    throw new Exception;
}
 
try{
    pcntl_alarm(1);
    pcntl_signal(SIGALRM, "sig");
    a();
    pcntl_alarm(0);
}catch(Exception $e){
    echo "timeout ";
}
 
b();
a();
b();

来操作

对于文件或程序代码可使用set_time_limit只是设置你的PHP程序的超时时间

解决方法:

1. 修改php.ini文件:

 代码如下 复制代码
 
max_execution_time = 30     ; // Maximum execution time of each script, in seconds

原值30秒,你可以改大点。

改完后记得重启php。该方法改了后对所有程序生效。

2. 修改你的程序,在你需要耗时超过默认值(30秒)的脚本中,加入代码:

 代码如下 复制代码
 
set_time_limit(300);   // 最大执行时间这里设置300秒

设置成0表示不限时。

 

在php中要生成迅雷、快车、QQ旋风下载链接我们会使用到的加密方式有base64_encode与base64_decode来生成,下面看两个例子,希望对你会带来帮助。


在一些资源下载共享站点中,我们经常遇到需要在下载页中添加各种下载工具链接的情况。传统的利用各下载工具官方提供的脚本(.js)生成链接的方式,其弊端已日渐突出,如加载速度慢、客户端兼容性问题等。

本文将介绍如何通过 PHP 函数处理,轻松生成制作各种第三方下载工具的链接数据,并直接输出到前台上。

该功能所用到的 PHP 函数:

1. base64_encode: 用于以 base64 方式加密字符串;
2. base64_decode: 用于解密以 base64 方式加密的字符串。

例子1

以原始下载地址生成第三方工具下载链接 PHP 代码:

 代码如下 复制代码

$url = 'http://www.example.com/document.zip';
 
// 可从以下代码推知各种第三方工具下载链接的精确构成
$url_thunder = 'thunder://' . base64_encode ( 'AA' . $url . 'ZZ' );
$url_flashget = 'flashget://' . base64_encode ( '[FLASHGET]' . $url . '[FLASHGET]' );
$url_qqdl = 'qqdl://' . base64_encode ( $url );

从第三方工具下载链接还原成原始链接 PHP 代码:

 代码如下 复制代码

$url_old = '';
 
// 将字符串以 // 为界限分开
$temp = explode ( '//' , $url_old, 2 );
// 判断 // 前的字符(已转换为小写)
switch ( strtolower( $temp[0] ) ) {
    case 'thunder:':
        $url_new = substr ( base64_decode ( $temp[1] ), 2, -2 );
        break;
    case 'flashget:':
        $url_new = substr ( base64_decode ( $temp[1] ), 10, -10 );
        break;
    case 'qqdl:':
        $url_new = base64_decode ( $temp[1] );
        break;
}

例子2

 代码如下 复制代码

<?php
function zhuanhuan() {
 $urlodd=explode('//',$_GET["url"],2);//把链接分成2段,//前面是第一段,后面的是第二段
 $head=strtolower($urlodd[0]);//PHP对大小写敏感,先统一转换成小写,不然 出现HtTp:或者ThUNDER:这种怪异的写法不好处理
 $behind=$urlodd[1];
 if($head=="thunder:"){
  $url=substr(base64_decode($behind), 2, -2);//base64解密,去掉前面的AA和后面ZZ
 }elseif($head=="flashget:"){
  $url1=explode('&',$behind,2);
  $url=substr(base64_decode($url1[0]), 10, -10);//base64解密,去掉前面后的[FLASHGET]
 }elseif($head=="qqdl:"){
  $url=base64_decode($behind);//base64解密
 }elseif($head=="http:"||$head=="ftp:"||$head=="mms:"||$head=="rtsp:"||$head=="https:"){
  $url=$_GET["url"];//常规地址仅支持http,https,ftp,mms,rtsp传输协议,其他地貌似很少,像XX网盘实际上也是基于base64,但是有的解密了也下载不了
 }else{
  echo "本页面暂时不支持此协议";
 }
 return $url;
}
if($_GET["url"]!=NULL){
 $url=zhuanhuan($_GET["url"]);
 $url_thunder="thunder://".base64_encode("AA".$url."ZZ");//base64加密,下面的2也一样
 $url_flashget="Flashget://".base64_encode("[FLASHGET]".$url."[FLASHGET]")."&aiyh";
 $url_qqdl="qqdl://".base64_encode($url);
}
?>
<form action=cs.php method=GET>
请输入普通链接或者迅雷,快车,旋风链地址:
<input type=text name="url" size="80">
<input type=submit value="转换">
</form>
<p>实际地址:<a href="<?php echo $url;?>" target="_blank"><?php echo $url;?></a>
<p>迅雷链:<a href="<?php echo $url_thunder;?>" target="_blank"><?php echo $url_thunder;?></a>
<p>快车链:<a href="<?php echo $url_flashget;?>" target="_blank"><?php echo $url_flashget;?></a>
<p>旋风链:<a href="<?php echo $url_qqdl;?>" target="_blank"><?php echo $url_qqdl;?></a>

生成效果如下

PHP生成迅雷、快车、QQ旋风下载链接的实例

php生成word文档比excel感觉要方便多了,他只要设置一下头部信息我们就可以直接使用fopen来实现读取操作,下面看几个例子。

php直接用fopen生成的核心代码是

 代码如下 复制代码

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">'.你的放的数据.'</html>

例子

 代码如下 复制代码

function word($data,$fileName=''){
 if(empty($data)) return '';
 $data='<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">'.$data.'</html>';
 if(empty($fileName)) $fileName=date('YmdHis').'.doc';
 $fp=fopen($fileName,'wb');
 fwrite($fp,$data);
 fclose($fp);
}

示例如下:

 代码如下 复制代码

<?php
$str='<title>利用php创建word文档</title>
 <h1>利用php创建word文档</h1>
 作者:phpernote.com
<hr size=1>
 <p>如果你打开word.doc,看到了这里的介绍,则说明word文档创建成功了。</p>
<p>
<b>版权所有:</b>
<br>www.111cn.net
<hr size=1>';
word($str);

为了方便使用我们把它整理成一个类文件

 代码如下 复制代码

<?php
class word
{
/*
@GNU:GPL
@author axgle <axgle@yahoo.com.cn>
@date 2005.4.20
*/

function start()
{
ob_start();
print'<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">';

}

function save($path)
{

print "</html>";
$data = ob_get_contents();

ob_end_clean();

$this->wirtefile ($path,$data);
}

function wirtefile ($fn,$data)
{

$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}

}

?>


使用方法超级简单

 代码如下 复制代码


<?php
include("word.php");
$word=new word;

$word->start();
?>

查询mysql数据生成word也是非常的简单我们只要连接数据库,然后把数据库的内容存放在类的$word字段中,然后再利用$word->start();生成即可。

今天发现本站的上一页与下一页出现有问题,上一页没有问题但是在下一页是直接到了本频道最新发布的文章了,按原理应该是文章本身ID的前与后的ID才是上下页吧,下面我来与大家详细讲述一下。

先看个例子

1,2,3,4,5

假如上面5个是ID了,我要对上一页排序直接使用order by id desc ,如我当前ID为3那么出来的是2才对,对下一页我们要用order by id asc得出的排序应该是,4,好了原理就这么简。

sql实现方法

 代码如下 复制代码

上一页

$sql ="Select 字段 from 表名 where id<3 order by id desc limit 1";

下一页

$sql ="Select 字段 from 表名 where id>3 order by id asc limit 1";


得出的结果与我们想的是一样的,好了最后我把自己以前写的一个函数分享给各位。

 代码如下 复制代码

/*
 上一页,下一页
 int $tag 0上一页,1下一页
 int $fid www.111Cn.net
*/
 function nextPre($tag=0,$zid,$fid)
 {
  if( $tag )
  {
   $sql ="Select 字段 from 表名 where id<$fid order by id desc limit 1";
  }
  else
  {
   $sql ="Select 字段 from 表名 where id>$fid order by id asc limit 1";
  }
  //$sql = "Select * from 表名 where order by id desc limit 0,10";
  $result =  mysql_query($sql) or die('query error');
  if( mysql_num_rows( $result ) )
  {
   $rs = mysql_fetch_array( $result );
   return "<a href="".$rs['s_url']."">".$rs['title']."</a>";
  }
  else
  {
   return '没有了';
  }
 }

注意:本站原创教程转载必须注明来源http://www.111cn.net 否则后果自负

下面给大家分享一个Php实现无限栏目分类读取的例子,希望文章对各位会带来帮助。

实现无限极栏目分类思路: 获取自增加ID(也就是父ID) 然后在到数据库获取子ID(也就是uid子id) 数据如下
id:1  uid:0  我是栏目1
id:2  uid:1  我是栏目2
id:3  uid:1  我是栏目1的子类

显示结果:                                                
我是栏目1                                                
我是栏目1的子类
我是栏目2                

下面是Php代码

 代码如下 复制代码

<?php
 $query = $this->db->query("SELECT * FROM category");
 $list = $query->result();
 foreach($list as $v){
 if($v->category_id == 0){//获取父栏目(等于0的都是父栏目)
 $categoryul = anchor("home/content/".$v->id,$v->category_name);
 echo "<ul>".$categoryul."</ul>";
 $listx = $this->Listx->list_id($v->id);//在根据父id显示出指定的子栏目
 foreach($listx as $vid){
 
 $category = anchor("home/content/".$vid->id,$vid ->category_name);
 echo "<li>".$category."</li>";
   }
    }
  }
?> 

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • Android设置TextView竖着显示实例

    TextView默认是横着显示了,今天我们一起来看看Android设置TextView竖着显示如何来实现吧,今天我们就一起来看看操作细节,具体的如下所示。 在开发Android程序的时候,...2016-10-02
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • SQL Server中row_number函数的常见用法示例详解

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • PHP加密解密函数详解

    分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
  • php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法

    最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • PHP页面转UTF-8中文编码乱码的解决办法

    对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码。PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题...2015-10-21