php中静态化生成的方法(htm页面生成)

 更新时间:2016年11月25日 17:25  点击:1382
在php中原生态的生成html页面我们会用到三个函数:ob_start()、ob_get_contents()、ob_end_clean()了,然后再把获取的内容给fopen函数生成即可。

例子,利用三个函数:ob_start()、ob_get_contents()、ob_end_clean()函数

知识点:

1、ob_start函数一般主要是用来开启缓存,注意使用ob_start之前不能有任何输出,如空格、字符等。

2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,注意此函数必须在ob_end_clean函数之前调用,否则获取不到缓存内容。

3、ob_end_clean函数主要是清空缓存中的内容并关闭缓存,成功则返回True,失败则返回False

输出控制函数(Output Control)也就是使用和控制缓存来生成静态HTML页面,也会使用到PHP文件读写函数。

PHP生成静态页面实例代码

 代码如下 复制代码

<? 
    ob_start(); 

    echo "<html>". 
    "<head>". 
    "<title>PHP网站静态化教程</title>". 
    "</head>". 
    "<body>欢迎访问PHP网站开发教程网www.111cn.net 本文主要介绍PHP网站页面静态化的方法</body>". 
    "</html>"; 
    
    $out1 = ob_get_contents(); 
    ob_end_clean(); 
    $fp = fopen("leapsoulcn.html","w"); 
    if(!$fp) 
    { 
    echo "System Error"; 
    exit(); 
    } 
    else
    { 
    fwrite($fp,$out1); 
    fclose($fp); 
    echo "Success"; 
    } 
?>

例子,

利用框架模板生成最近比较火的php框架有thinkphp下面我们就以它为例子。

thinkphp提供了一个有效的生成静态页的方法,(在tp2.0的手册上有说明,3.0的手册上没有说明了,不过3.0方法还是存在的。)

 代码如下 复制代码

$this->buildHtml('静态文件', '静态路径','模板文件');


参数一:静态文件,是指生成后的静态文件名,文件保存路径完整的就是:静态路径/静态文件。例如静态文件设置a/index.那么保存的路径就是项 目路径/Html/a/index.html(默认的静态路径在项目路径的Html文件夹下,没有可以自己创建)

参数二:静态路径,上面已经说明了默认的路径,3.0中可以在入口文件里加入参数来更改静态路径。 define('HTML_PATH', './');(将静态路径义为网站根目录)


参数三:模板文件,我感觉官方这个描述是不正确的,准确的来说应该是目标模块,就是需要生成静态文件的模块。格式:模块名:操作。比如要生成Index下的a方法为静态文件,那就是Index:a。如果为空则默认生成当前操作的静态文件。


1 、在入口文件index.php文件中定义生成静态页面的文件位置,然后在个目录新建Html文件夹

 代码如下 复制代码

   define( 'HTML_PATH' , './Html' );//www.111cn.net


2 、在根目录的config文件夹中的config.php配置静态页面的类型,设为 html 

 代码如下 复制代码
 'HTML_FILE_SUFFIX'        = > '.html' , // 默认静态文件后缀


3 、在“Tpl / default / ”目录中新建一个Index的文件夹,文件夹下面新建一个index.html的模板,   模板里面内容为:这是生成静态页例子

4 、控制器IndexAction. class .php中的代码

 代码如下 复制代码

   class IndexAction extends Action{
     public function index(){
       $this - > buildHtml( '名称' ,HTML_PATH. '/' , '模版' , 'utf8' ); //注意:这里的utf8不能写成utf-8
       $this - > display();
    }
  }

解释 :
    这里的buildHtml是thinkphp内置的函数,这里的意思是:
    将index的模板文件生成utf8编码格式的静态网页,该文件名为 1 .html,存在于根目录的htm文件中
    该函数有 5 个参数,具体如下 :
    buildHtml($htmlfile,$htmlpath,$templateFile,$charset,$contentType = 'text/html' )
参数:
    $htmlfile 生成的静态文件名称
    $htmlpath 生成的静态文件路径
    $templateFile 指定要生成静态的模板文件
    $charset 生成静态文件的编码格式

    $contentType 生成静态文件的类型

// 生成静态页

 代码如下 复制代码
class AddhtmlAction extends CommonAction {
    public function index(){
        $this->assign('abc', 'abc222222222');
        $pagename = '123 www.111cn.net';        //页面名称
        $temppath = '';        //显示模版路径
        //查看配置文件是否开启显示静态模版
        if(C('IS_HTML'))
        {
            //判断是否已经生成静态页面
            if(!is_file(HTML_PATH . '/'. $pagename .'html'))
                $this->buildHtml($pagename, HTML_PATH.'/', 'index', 'utf8');//注意:index为动态模版 这里的utf8不能写成utf-8
            $temppath = HTML_PATH . '/'. $pagename .'html';
        }
        $this->display($temppath);
    }
}
session是php中一个服务器端超级全局变量而memcache是缓存应用,下面我来把它们整合起来把session存放在memcache中,下面我们一起来看如何实现的吧。

1.首先安装memcached或者memcache软件
参考:wamp 安装 memcache/memcached详细说明
2.安装php_memcache.dll扩展
3.设置session保存在memcached

方法一:

修改php.ini文件

 代码如下 复制代码

session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"

方法二:

程序中动态设置

 代码如下 复制代码

ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211");

测试程序

1.session.php

 代码如下 复制代码

<?php
ini_set("session.save_handler", "memcache");
ini_set("session.save_path", "tcp://127.0.0.1:11211");

session_start();
if (!isset($_SESSION['username'])) {
 $_SESSION['username'] = 'phpff.com';
}

print session_id();//5877fbfcaea379ada0cc0dbba80615a6

?>

2.test.php

 代码如下 复制代码

<?php
// memcache test code
$memcache = new Memcache; //创建一个memcache对象
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); //连接Memcached服务器 

print_r($memcache->get('5d3d79d7500f5836033e9019b3eefc6f'));//username|s:9:"phpff.com";

?>

本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。
 代码如下 复制代码
//模板存放目录
$dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/';
 
 
$templateName = '1.xlsx';
$outputFileName = '模板.xlsx';
$txt='test';
 
//实例化Excel读取类
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($dir.$templateName)){
 $PHPReader = new PHPExcel_Reader_Excel5();
 if(!$PHPReader->canRead($dir.$templateName)){
  echo '无法识别的Excel文件!';
  return false;
 }
}
//读取Excel
$PHPExcel = $PHPReader->load($dir.$templateName);
//读取工作表1
$currentSheet = $PHPExcel->getSheet(0);
 
$currentSheet->setCellValue('B13',iconv('gbk','utf-8',$txt));//表头赋值//
//实例化Excel写入类
$PHPWriter = new PHPExcel_Writer_Excel2007($PHPExcel);
ob_start();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:attachment;filename="' .$outputFileName. '"');//输出模板名称
header("Content-Transfer-Encoding: binary");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header('Pragma: public');
header('Expires: 30');
header('Cache-Control: public');
$PHPWriter->save('php://output');

 

远程图片保存功能以前介绍过很多php的例子,这里我给大家介绍一个php+ajax的例子,希望本例子给你会有所帮助。

先看效果


实现原理

发送请求 :将输入的目标网址及保存路径名称采用AJAX异步的方式发送到image.info.php文件,该文件中包含有一个ImageCatch类,注意:因为有一个是指定目标图片抓取,一个是只要指定一个网址,如http://www.111cn.net形式,所以还要有一个参数用来判断是指定目标抓取还是指定网站抓取。

接收请求 :接收发送过来的两个参数,目标网址及保存路径,实例化ImageCatch类,将地址及保存路径传进去,用file_get_contents函数将目标地址的内容读取赋值给一个变量$content。

先说指定图片抓取的实现 :指定图片抓取的方法实现比较简单,直接用file_get_contents函数将图片读取到,再用file_put_contents写入到一个文件保存起来就可以了。

指定网址抓取图片的实现

方法跟指定图片地址抓取就有点不一样了,因为采用的是jquery+ajax无刷新模式抓取,所以,请求要一次一次发,先说第一次发什么请求,很显然,第一次发的请求内容是获取目标网址的所有图片地址及图片总数,那要怎样获取目标网址的所有图片地址呢?思路跟上面的一样,但方法不同;

第一步:用file_get_contents函数读取目标网址赋值给一个content变量。

第二步:用正则匹配所有img标签里的src属性,并保存在一个数组,这样网页的图片地址就已经拿到了

第三步:用正则匹配所有样式表文件link标签的href属性,并保存在一个数组$arr1

第四步:还是用file_get_contents函数读取获取的样式表文件,再用正则去匹配到css样式里的url背景图片地址,并保存在一个数组$arr2,这样css样式的图片又拿到了

第五步:将$arr1和$arr2用array_merge函数进行合并成$arr,再用一个数组$arr3(‘total’=>count($arr))得出图片总数并追加到数组$arr里面去,这样图片地址和总数都拿到了

第六步:用json_encode编译一个返回json数据 第七步:接收返回回来的json数据,将数据都存入一个数组,判断是否数组为空,不为空,则用函数递归的方法调用一个函数,每调用一次,在返回结果后就将该数组的第一个元素去掉,再判断数组是否为空,不为空,则继续发送抓取请求,直到数组为空,全部图片就已经都抓取完毕。

好了现在看例子

index.php

 代码如下 复制代码
<!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP远程图片抓取</title>
<style>
body { margin:0; padding:0; }
#content { width:90%; height:auto; margin:0 auto; margin-top:20px; font-size:12px; color:#333; }
#content .h1 { width:100%; line-height:30px; text-align:left; }
#content .h2 { width:100%; line-height:30px; text-align:left; }
#content .Schedule { width:auto; height:12px; margin:15px 0px; display:none; background:url() }
#content ul { width:100%; height:auto; margin-top:10px; }
#content ul li { height:24px; line-height:24px;}
#content font { color:#f00; }
</style>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
$(document).ready(function() {
    var TargetUrl;
 var Save;
 function error(info) {
  $('#content .h2 font').text(info);
 }
 function statusInfo(info) {
  $('#content ul').append('<li>'+info+'</li>');
 }
 //禁用按钮
 function start_d() {
  $('#Single,#more').attr('disabled','disabled');
 }
 //解放按钮
 function start_s() {
  $('#Single,#more').removeProp('disabled');
 }
 //进度跳转
 function href() {
  location.href='#bottom';
 }
 //单个图片抓取
 $('#content .h1 #Single').click(function() {
  TargetUrl=$('#content .h2 .TargetUrl').val();
  Save=$('#content .h2 .Save').val();
  if (TargetUrl=='') {
   error(' * 请填写目标网址');
   return;
  }
  if (Save=='') {
   error(' * 请填写保存目录');
   return;
  }
  var zurl=new Array(TargetUrl);
  start_d();
  Crawl(zurl,Save);
 });
 function Crawl(zurl,Save) {
  start_d();
  $('#content .Schedule').show();
  if (zurl.length>0) {
   var curl=zurl[0];
  $.ajax({
   url:'image.info.php?Single=Single',
   dataType:'json',
   type:'POST',
   data:'TargetUrl='+curl+'&Save='+Save,
   success: function(data) {
    if (data.status=='ok') {
     statusInfo('远程图片 <font>'+curl+'</font> 抓取成功 已保存在 <font>'+data.FileSave+'</font> 文件大小:<font>'+data.FileSize+'</font>');
     zurl.shift();  //删除第一个数组元素并返回
     Crawl(zurl,Save); //使用函数递归
     href();
    }else {
     zurl.shift();    //删除第一个数组元素并返回
     Crawl(zurl,Save); //使用函数递归
     statusInfo(data.status);  //显示失败信息
     $('#content .Schedule').hide(); //隐藏LOADING图片
     start_s();   //按钮启用
     href();
    }
   }
  });
  }else {
   $('#content .Schedule').hide();
   statusInfo('图片抓取完毕');
   start_s();
   href();
  }
 }
 //多个图片抓取
 $('#content .h1 #more').click(function() {
  TargetUrl=$('#content .h2 .TargetUrl').val();
  Save=$('#content .h2 .Save').val();
  if (TargetUrl=='') {
   error(' * 请填写目标网址');
   return;
  }
  var str=/^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/;
  if (!str.test(TargetUrl)) {
   error(' * 目标网址不正确');
   return;
  }
  if (Save=='') {
   error(' * 请填写保存目录');
   return;
  }
  start_d();
  $('#content .Schedule').show();
  $.ajax({
   url:'image.info.php?more=more',
   dataType:'json',
   type:'POST',
   data:'TargetUrl='+TargetUrl+'&Save='+Save,
   success: function(data) {
    if (data[0]!='no') {
     statusInfo('在目标网址 <font>'+TargetUrl+'</font> 找到 <font>'+data['total']+'</font> 张图片,现正在进行抓取....');
     var zurl=new Array();
     for (i=0; i<data['total']; i++) {
      zurl.push(data[i]);
     }
     Crawl(zurl,Save);
    }else {
     statusInfo("未抓取找到任何图片");
     $('#content .Schedule').hide();
     start_s();
    }
   }
  });
 });
 $('#clear').click(function() {
  $('#content ul li').remove();
 });
});
</script>
</head>
<body>
<div id="content">
 <h1>PHP远程图片抓取程序</h1>
 <div class="h1">
    指定图片抓取:<input type="button" value=" 开始抓取 " id="Single" /> <font>目标网址如:http://www.111cn.Net/123.jpg</font>  指定网址抓取:<input type="button" value=" 开始抓取 " id="more" /> <font>目标网址如:http://www.111cn.Net</font>  <input type="button" value=" 清空状态信息 " id="clear" />
    </div>
    <div class="Schedule"><font>正在抓取,请稍后...</font> <img src="loading.gif" border="0" /></div>
    <div class="h2">目标网址:<input type="text" class="TargetUrl" size="40" /> 保存地址:<input type="text" class="Save" /><font></font></div>
    <ul>
    </ul>
    <a name="bottom"></a>
</div>
</body>
</html>

images.info.php

 代码如下 复制代码

<?php
header('Content-Type; text/json; charset=utf-8');
$Single=$_GET['Single'];
$more=$_GET['more'];
$TargetUrl=$_POST['TargetUrl'];
$Save=$_POST['Save'];
//判断是抓取单个图片还是多个图片
if ($Single=='Single') {
 $ImageCatch=new ImageCatch($TargetUrl,$Save);
 $ImageCatch->S();
}else if ($more=='more') {
 $ImageCatch=new ImageCatch($TargetUrl,$Save);
 $ImageCatch->M();
}
//图片抓取类
class ImageCatch {
 private $TargetUrl;  //目标地址
 private $Save;  //保存地址
 private $FileName; //文件名称及路径
 private $Type;  //文件类型
 private $Size;  //文件大小
 //构造函数
 public function __construct($TargetUrl,$Save) {
  $this->TargetUrl=str_replace("'",'',$TargetUrl);   //去掉单引号
  $this->Save=$Save;
 }
 //CSS样式表中图片抓取方法
 public function CSS() {
  $content=@file_get_contents($this->TargetUrl);
  //CSS图片过滤
  preg_match_all('/<link.+href="?(.*?.css)"?.+>/i',$content,$css);
  $css[1]=array_unique($css[1]);//移除重复的值
  $match2=array();
  if (count($css[1])>0) {
   foreach($css[1] as $val) {
    if (!preg_match('/^(https?://)/i',$val)) {
     $val=$this->TargetUrl.'/'.$val;
     $csscontent=@file_get_contents($val);
    }else {
     $csscontent=@file_get_contents($val);
    }
    //匹配图片URL地址
    preg_match_all('/url((.*))/i',$csscontent,$cssimg);
    $cssimg[1]=array_unique($cssimg[1]);//移除重复的值
   }   
   foreach($cssimg[1] as $val) {
    //去除 " ) 字符
    $val=preg_replace(array('/"|)/'),'',$val);
    //去除../字符
    $val=str_replace('../','',$val);
    //检查是否是http://开头,如果不是则加上要抓取的网址
    if (!preg_match('/^(https?://)/i',$val)) {
     array_push($match2,$this->TargetUrl.'/'.$val);
    }else {
     array_push($match2,$val);
    }
   }
   return $match2;
  }
 }
 //计算并返回图片数量及地址
 public function M() {
  $content=@file_get_contents($this->TargetUrl);
  //网页图片过滤
  $str='/<img.+src="?(.+.(jpg|gif|bmp|bnp|png))"?.+>/i';
  preg_match_all($str,$content,$res);
  if ($res[1]) {
   $res[1]=array_unique($res[1]);//移除重复的值
   $httpstr='/^(https?://)/i';
   $match=array();
   foreach($res[1] as $val) {
    if (!preg_match($httpstr,$val)) {
     array_push($match,$this->TargetUrl.'/'.$val);
    }else {
     array_push($match,$val);
    }
   }
   $cssimg=$this->CSS();
   //扫描出css文件图片的总数与网页图片相加得到总数
   $total=array("total"=>count($match)+count($cssimg));
   $result=array_merge($total,$match,$cssimg);
   //返回JSON数据
   echo json_encode($result);
  }else {
   $res=array('no');
   echo json_encode($res);
  }
  exit;
 }
 //抓取并保存图片
 public function S() {
  $this->Type=substr(strrchr($this->TargetUrl,'.'),1);
  $this->FileName=$this->Save.'/'.substr(strrchr($this->TargetUrl,'/'),1);
  $this->imageType();
  $content=@file_get_contents($this->TargetUrl);
  $this->imageDir();
  if (!@file_put_contents($this->FileName,$content,FILE_USE_INCLUDE_PATH)) {
   @unlink($this->FileName);
   exit('{"status":"没有找到 '.$this->TargetUrl.' 图片"}');
  }else {
   $this->imageSize();
   exit('{"status":"ok","FileSave":"'.$this->FileName.'","FileSize":"'.$this->Size.'"}');
  }
 }
 //新建目录
 private function imageDir() {
  if (!@file_exists($this->Save)) {
   if (!@mkdir($this->Save,0700)) {
    exit('{"status":"新建保存目录失败"}');
   }
  }
 }
 //文件类型判断
 private function imageType() {
  $typeArr=array('jpg','png','gif','zip','rar');
  if (!in_array($this->Type,$typeArr)) {
   exit('{"status":"要执行抓取的文件扩展名有错误,'.$this->TargetUrl.'"}');
  }
 }
 //文件大小检测
 private function imageSize() {
  if (file_exists($this->FileName)) {
   $this->Size=filesize($this->FileName);
   if ($this->Size>1024*1024*1024) {
    $this->Size=round($this->Size/1024/1024/1024,2).' GB';
   }else if ($this->Size>1024*1024) {
    $this->Size=round($this->Size/1024/1024,2).' MB';
   }else if ($this->Size>1024) {
    $this->Size=$this->Size/1024;
    $this->Size=ceil($this->Size).'KB';
   }else {
    $this->Size=$this->Size.'bit';
   }
  }else {
   return '未找到文件';
  }
 }
}
?>

 

在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旋风下载链接的实例

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    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 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • mysql锁定单个表的方法

    mysql锁定单个表的方法 复制代码 代码如下:mysql>lock table userstat read; mysql>unlock tables; 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INN...2014-05-31