php 利用curl模仿用户采集远程网站内容

 更新时间:2016年11月25日 15:56  点击:1495
本程序是先利用判断服务器是否是支持curl_init如果是就模仿用户读取远程数据,并且 进行解析正则过滤不要的信息,否则就用file采集远程数据,如果服务器还不支持file就提示无法采集想要的内容
 代码如下 复制代码

$timestamp = time();
function open($file,$type=''){
        global $fromurl,$referer;
        $cachename=$file;
                if($type){
                        $file='/'.$type.'/'.$file;
                }else{
                        $file=$file;
                }
                        if($open=file($file)){
                                        $count=count($open);
                                        for($i=0;$i<$count;$i++){
                                                $theget.=$open[$i];
                                        }
                                }else{
                                        die('无法连接源站网络,请刷新');
                                }
        return $theget;
}

function cut($file,$from,$end){
        $message=explode($from,$file);
        $message=explode($end,$message[1]);
return        $message[0];
}

function curl($openurl)
{
 global $isfun;
 if($isfun=="curl"){
 $ch = curl_init($openurl);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 $file = curl_exec($ch);
 curl_close($ch);
 }
 elseif($isfun=="fopen"){
  $file=open($openurl);
 }
 else{ echo "<script>alert('你的空间不支持本程序,谢谢使用');window.close();</script>";}
 return $file;
}

//使用方法

 代码如下 复制代码
$url = 'http://www.111cn.net';
$content = open($url,0);

/*
下面的函数用来判断函数是否可用
*/

 代码如下 复制代码

function isfun($funName)
 {
        return (false !== function_exists($funName))?YES:NO;
 }
?>

//下面提供一三个针对函数来测试服务器的整数运算能力测试, 浮点运算能力测试和数据IO能力测试哦。
 代码如下 复制代码
    function test_int()
    {
        $timeStart = gettimeofday();
        for($i = 0; $i < 3000000; $i++);
        {
            $t = 1+1;
        }
        $timeEnd = gettimeofday();
        $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
        $time = round($time, 3)."秒";
        return $time;
    }

/*--------
    浮点运算能力测试
----------*/
  

 代码如下 复制代码
  function test_float()
    {
        $t = pi();
        $timeStart = gettimeofday();
        for($i = 0; $i < 3000000; $i++);
        {
            sqrt($t);
        }
        $timeEnd = gettimeofday();
        $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
        $time = round($time, 3)."秒";
        return $time;
    }


/*-----
    数据IO能力测试
-----*/

 代码如下 复制代码
    function test_io()
    {
        $fp = fopen(PHPSELF, "r");
        $timeStart = gettimeofday();
        for($i = 0; $i < 10000; $i++)
        {
            fread($fp, 10240);
            rewind($fp);
        }
        $timeEnd = gettimeofday();
        fclose($fp);
        $time = ($timeEnd["usec"]-$timeStart["usec"])/1000000+$timeEnd["sec"]-$timeStart["sec"];
        $time = round($time, 3)."秒";
        return($time);
    }


 /*
  很多公司都自己写了相关的服务器针探测试工具,我们为你提供的只是三种简的整型运算,浮点运算,与io数据输出压力测试。

HTTP_REFERER这个是作用是返回上一个页面地址包,但有时会取不到,我们可以模仿它来做下面来看二种在正常的$_SERVER[\\\'HTTP_REFERER\\\']取不到值的处理方法。

//简单关于HTTP_REFERER一

 代码如下 复制代码

$phpSelf = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];

$queryString = '';
if (!empty($_SERVER['QUERY_STRING']))
{
 $queryString = '?' . $_SERVER['QUERY_STRING'];
}

echo $phpSelf . $queryString;

//实例教程二 HTTP_REFERER二

 代码如下 复制代码
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/test.php');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER,   'http://www.baidu.com');
$data = curl_exec($ch);
curl_close($ch);
echo $data;

/* http://www.111cn.net/test.php */
die($_SERVER['HTTP_REFERER']);

SESSION是一个服务器全局变量,常用于用户登陆,购物车实例,用在一些安全要求比较高的应用中。 session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库),PHP.ini 的权限,默认 session 的存放路径是服务器的系统临时文件夹

/*
SESSION简单说明
 SESSION是一个服务器全局变量,常用于用户登陆,购物车实例,用在一些安全要求比较高的应用中。
 session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库教程),PHP.ini 的权限,默认 session 的存放路径是服务器的系统临时文件夹

Session 使用方法

 如何创建 session? 非常简单,真的。启动 session 会话,并创建一个 $useradmin 变量

 代码如下 复制代码

 <?
  session session_start();
  $_session["admin"] = 'www.111cn.net';
  session_unset();
  session_destroy();

 ?>

session实例应用的一个简单的实例
 create table session_test(
  admin(20) not null default '',
  pwd(20) not null default ''  
 )type = mysima;
 
 插入一条数据
 insert into session_test values('admin','123456');
*/

//用户登陆

 代码如下 复制代码

$db ='abc';
$c = mysql教程_connect('localhost','root','123456');

$sql = "Select * from session_test where admin= '$admin' and pwd='$pwd'";
$result = mysql_db_query($db,$sql,$c);

if( mysql_num_rows( $result ) )
{
 $rs = mysql_fetch_array( $result );
 $_SESSION['admin'] = $admin; 
}
else
{
 exit('用户名密码不正确');
}

//好上面的登陆实例完成了,现在我们来判断用户是否为登陆状态,如果是就进入相关页面

 代码如下 复制代码
if( isset( $_SESSION['admin'] ) && isset( $_SESSION['admin'] != '' ) )
{
 header('location:http://www.111cn.net'); //判断了session的admin是有值的所以进行跳转
}
else
{
 exit('未登陆');
}

// 下面我们再退出登陆状态

 代码如下 复制代码
  $_session["admin"] = '';
  //或
  session_unset();
  //或
  session_destroy();

//本站原创文章转载注明来自www.111cn.net
?>

expr1 为条件的初始值。expr2 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份,用来改变条件,供下次的循环判断

/*
for 语法

 代码如下 复制代码
for (expr1; expr2; expr3) {
  statement
}

 

下面看for实例教程

*/

 代码如下 复制代码
$for = array(1,2,3,4,5,6);
$forFor = array(
    array(1),
    array(2),
    array(3)
    );

    
//先来看看用for循环一组数据的实例

 代码如下 复制代码

$arrayLen = sizeof( $for );

for( $i = 0; $i< $arrayLen ;$i++ )
{
 echo $for[$i],'<br>';
}


/*
结果
1
2
3
4
5
6
这是我们想要的结果

for 来处理二维数组

 代码如下 复制代码
*/
for( $j=0;$j<$arrayLen;$j++ )
{
 //echo ($forFor($j));
}

// 出现Fatal error: Function name must be a string in提示

//我们换一种用户用foreach来实例

 代码如下 复制代码
foreach( $forFor as $v => $vv )
{
 print_r($vv);
}

/*
输出
(
    [0] => 1
)
Array
(
    [0] => 2
)
Array
(
    [0] => 3
)
正好是我们想要的数据,

总结
每个语句都有自己用途,我们要看如何更合理的去使用适合你当前操作的函数来快速的完成你的工作。
从上面来看for适合一维数据,并且单一的循环,foreach可以操作一维数据二维数据等。

本站原创文章转载注明来自www.111cn.net/phper/php.html

[!--infotagslink--]

相关文章

  • php漏洞之跨网站请求伪造与防止伪造方法

    今天我来给大家介绍在php中跨网站请求伪造的实现方法与最后我们些常用的防止伪造的具体操作方法,有需要了解的朋友可进入参考。 伪造跨站请求介绍 伪造跨站请求...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • mac下Apache + MySql + PHP搭建网站开发环境

    首先为什不自己分别搭建Apache,PHP和MySql的环境呢?这样自己可以了解更多知识,说起来也更酷。可也许因为我懒吧,我是那种“既然有现成的,用就是了”的人。君子生非异也,善假于物也。两千年前的荀子就教导我们,要善于利用工具...2014-06-07
  • php根据用户语言跳转相应网页

    当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <&#63;php $lan = substr(&#8194;$HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
  • js检测用户输入密码强度

    一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
  • php有效防止同一用户多次登录

    【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
  • php实现网站留言板功能

    我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理 需要在评论表添加两个主要字段 id 和 pid ,其他字段随意添加,比如文章id、回复时间、回复内容、...2015-11-08
  • php ajax注册验证用户名是否存在代码

    这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
  • 网站广告怎么投放最好?首屏广告投放类型优化和广告位布局优化的案例

    网站广告怎么投放最好?一个网站中广告位置最好的是哪几个地方呢,许多的朋友都不知道如何让自己的网站广告收效最好了,今天我们就一起来看看吧。 在说到联盟优化前,...2016-10-10
  • 微信小程序用户授权最佳实践指南

    这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
  • 简单php cookie用户登录实例

    cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
  • 超详细的php用户注册页面填写信息完整实例(附源码)

    注册页面是大多数网站必备的页面,所以很有必要对自己的注册页面做些精心的设计。下面三张图,第一张是注册的展示页面,第二张思维导图就一个简单的逻辑,第三张是通过firebug查看调用的JS文件。 一、给每个输入框写下说明在...2015-11-24
  • 个人站长做网站应该考虑的一些问题

    个人网站建设应该考虑哪些问题呢?这个问题我们先在这里不说,下文会一一列出来,希望这些建义能帮助到各位同学哦。 我相信VIP成员里面有很多站长,每个人几乎都拥有一个...2016-10-10
  • 分享利用论坛签名提升网站权重

    分享一篇利用论坛签名提升网站权重的方法,在推广中论坛签名也是一种不错的外链推荐的方法,但现在权重越来越低了,有需要的朋友可以看看。 话说有一天在站长网上面看...2016-10-10
  • MySQL验证用户权限的方法

    知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
  • sqlserver添加sa用户和密码的实现

    这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
  • 如何提高网站pv 吸引力

    关于如何提高网站的吸引呢,下面我们列出了5点,让你的网站pv大大的提升哦   1、建立一个清晰的网站地图   一个清晰的网站地图可以给你的用户提供一个简介明了的...2017-07-06
  • 如何有效提高网站的用户回头率

    第一,网站的内容;请各位站长朋友不要一天到晚只想着出什么好的绝招来推广网站,却忽略了网站的内容;其实网站的内容是极为重要的,因为这是你的本,你的根!网站的内容只有不断...2017-07-06