当前位置:  编程技术>php
本页文章导读:
    ▪php查找数组中某个元素是否存在的方法      本节内容: 查找数组中某个元素 在php编程中,查找一个元素是否在数组中,可以有三种做法: in_array  '函数在数组中搜索给定的值。in_array(value,array,type)type 可选。 如果设置该参数为 true.........
    ▪php抓取google关键词排名的实例代码      本节内容: 抓取google关键词排名 实现思路: 使用PHP的curl函数储存cookie,google搜索页面是无法用file_get_connents打开的,必须要完全模拟浏览器才行。 百度则可以直接用file_get_conntens抓取页面.........
    ▪PHP按日、周、月点击排行统计的代码      本节内容: 按日、周、月点击排行统计 原理分析: 首先,判断当前文章的日期是否为当月当日当周的,是的话,则点击数加1。 例子:   代码示例: <?php /** * 按日、周、月点击排行统.........

[1]php查找数组中某个元素是否存在的方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
查找数组中某个元素

在php编程中,查找一个元素是否在数组中,可以有三种做法:
in_array  '函数在数组中搜索给定的值。in_array(value,array,type)type 可选。
如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

array_key_exists 'array_key_exists() 函数
判断某个数组中是否存在指定的 key,如果该 key 存在,则返回 true,否则返回 false。

array_search 'array_search() 函数
与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。

说明:
在数据量不大时,比如小于1000,查找用哪一种都行,都不会成为瓶颈;
当数据量比较大时,用array_key_exists比较合适。
当然这里array_key_exists占用的内存比较大,经测算,数组结构是:

array(1, 2, 3, ..)和 array(1 => true, 2 => false, ..)

内存使用比值为1:2;
这个和内部实现有关系,实际上在php中第一种和第二种的数据结构类似,都是关联数组。


    
[2]php抓取google关键词排名的实例代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
抓取google关键词排名

实现思路:
使用PHP的curl函数储存cookie,google搜索页面是无法用file_get_connents打开的,必须要完全模拟浏览器才行。
百度则可以直接用file_get_conntens抓取页面,然后用正则处理下即可。

例子:
 

代码示例:

<?php
header("Content-Type: text/html;charset=utf-8");

function ggsearch($url_s, $keyword, $page = 1) {
        $enKeyword = urlencode($keyword);
        $rsState = false;
        $page_num = ($page -1) * 10;
        if ($page <= 10) {
$interface = "eth0:" . rand(1, 4); //避免GG封IP
$cookie_file = dirname(__FILE__) . "/temp/google.txt"; //存储cookie值
$url = "http://www.google.com/search?q=$enKeyword&hl=en&prmd=imvns&ei=JPnJTvLFI8HlggeXwbRl&start=$page_num&sa=N";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

//curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);//获取浏览器类型
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5");
curl_setopt($ch, CURLOPT_INTERFACE, "$interface"); //指定访问IP地址
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
$contents = curl_exec($ch);
 
curl_close($ch);

$match = "!<div\s*id=\"search\">(.*)</div>\s+<\!--z-->!";

preg_match_all("$match", "$contents", $line);

while (list ($k, $v) = each($line[0])) {

        preg_match_all("!<h3\s+r\"><a[^>]+>(.*?)</a>!", $v, $title);

        $num = count($title[1]);

        for ($i = 0; $i < $num; $i++) {

if (strstr($title[0][$i], $url_s)) {

        $rsState = true;

        $j = $i +1;

        $sum = $j + (($page) * 10 - 10);

        //echo $contents;

        echo "关键字" . $keyword . "<br>" . "排名:" . '<font color="red" size="20" >' . $sum . '</font>' . "####" . "第" . '<font color="#00FFFF" size="18" >'.$page . '</font>'. " 页" . "第" .'<font color="#8000FF" size="15" >'.$j . '</font>'. "名" . $title[0][$i] . "<br>";

        echo "<a href='" . $url . "'>" . "点击搜索结果" . "</a>" . "<br>";

        echo "<hr>";

        break;
}
        }
}

unset ($contents);
if ($rsState === false) {
        ggsearch($url_s, $keyword, ++ $page); //找不到搜索页面的继续往下搜索
}

        } else {
echo '关键字' . $keyword . '10页之内没有该网站排名' . '<br>';
echo "<hr>";
        }
}

if (!empty ($_POST['submit'])) {
        $time = explode()(' ', microtime());
        $start = $time[0] + $time[1];
        $more_key = trim($_POST['textarea']);
        $url_s = trim($_POST['url']);
        if (!empty ($more_key) && !empty ($url_s)) {
/*判断输入字符的规律*/
if (strstr($more_key, "\n")) {
        $exkey = explode("\n", $more_key);
}

if(strstr($more_key, "|")) {
        $exkey = explode("|", $more_key);
}

if(!strstr($more_key, "\n")&&!strstr($more_key, "|")){
$exkey=array($more_key);
}
/*判断是否有www或者http://之类的东西*/
 if (count(explode('.', $url_s)) <= 2) {
$url = ltrim($url_s, 'http://www');
$url = 'www.' . $url_s;
}

foreach ($exkey as $keyword) {
        //$keyword;
        ggsearch($url_s, $keyword);
}
$endtime = explode(' ', microtime());
$end = $endtime[0] + $endtime[1];
echo '<hr>';
echo '程序运行时间: ';
echo $end - $start;
//die();
 }
}
?>
<!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>
<title>抓取排名 - www.</title>
</head>
<body>
<form action="" method="post">
<span>关键字:</span> <textarea name="textarea" rows="20" cols="40" wrap="off">
格式例如:keyword1|keyword2|keyword3
  或者:   keyword1
          keyword2
          keyword3
  </textarea>
       <span>url地址:</span><input type="text" name="url">
      <input type="submit" name="submit" value="搜索">
</form>
</body>
</html>


    
[3]PHP按日、周、月点击排行统计的代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
按日、周、月点击排行统计

原理分析:
首先,判断当前文章的日期是否为当月当日当周的,是的话,则点击数加1。

例子:
 

代码示例:
<?php
/**
* 按日、周、月点击排行统计
* by www.
*/
$now=time(); //当前时间
$StrUpdate = "Update $tbl_article set hits=hits+1";
if(date("d",$lasthittime)==date("d",$now)){//同一天
$StrUpdate = $StrUpdate.",dayhits = dayhits+1";
}else{
$StrUpdate = $StrUpdate.",dayhits = 0";
}
if(date("W",$lasthittime)==date("W",$now)){//同一周
$StrUpdate = $StrUpdate.",weekhits = weekhits+1";
}else{
$StrUpdate = $StrUpdate.",weekhits = 0";
}
if(date("m",$lasthittime)==date("m",$now)){//同一月
$StrUpdate = $StrUpdate.",monthhits = monthhits+1";
}else{
$StrUpdate = $StrUpdate.",monthhits = 0";
}
$StrUpdate = $StrUpdate.",lasthittime='$now' where id='$id'"; //更新点击时间
$fsql->query($StrUpdate);

小问题:
如果是天的话,则要先判断年月都是一样的,然后再判断天。


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3