当前位置: 编程技术>php
本页文章导读:
▪PHP通过正则表达式下载图片到本地的实现代码
代码如下:<?php /* author: ssh_kobe date: 20110602 shortage: 如果网页中的图片路径不是绝对路径,就无法抓取 */ set_time_limit(0);//抓取不受时间限制 $URL='http://pp.baidu.com/';//任意网址 get_pic($URL); function .........
▪PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
代码如下:$command = '/usr/bin/php /pub/www/u111/job/Crondo/auto_collector.php &'; $process = proc_open($command, array(),$pipes); $var = proc_get_status($process); proc_close($process); //pid就是进程ID,至于为什么要加1,我现.........
▪php去除重复字的实现代码
方法一: 代码如下: $text = '数组aabbccdd'; $text_filter = ''; $filter = array(); $len = mb_strlen($text, 'utf-8'); for ($i = 0; $i<$len; $i++) { $char = mb_substr($text, $i, 1, 'utf-8'); if (!isset($filter[$char])) { $text_filter .= $c.........
[1]PHP通过正则表达式下载图片到本地的实现代码
来源: 互联网 发布时间: 2013-11-30
代码如下:
<?php
/*
author: ssh_kobe
date: 20110602
shortage: 如果网页中的图片路径不是绝对路径,就无法抓取
*/
set_time_limit(0);//抓取不受时间限制
$URL='http://pp.baidu.com/';//任意网址
get_pic($URL);
function get_pic($pic_url) {
//获取图片二进制流
$data=CurlGet($pic_url);
/*利用正则表达式得到图片链接*/
$pattern_src = '/<[img|IMG].*?src=/blog_article/[/index.html'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>/';
$num = preg_match_all($pattern_src, $data, $match_src);
$arr_src=/blog_article/$match_src[1];/获得图片数组/index.html
get_name($arr_src);
echo "<br>finished!!!";
return 0;
}
/*得到图片类型,并将其保存到与该文件同一目录*/
function get_name($pic_arr)
{
//图片类型
$pattern_type = '/(/.(jpg|bmp|jpeg|gif|png))/';
foreach($pic_arr as $pic_item){//循环取出每幅图的地址
$num = preg_match_all($pattern_type, $pic_item, $match_type);
$pic_name = get_unique().$match_type[1][0];//改时微秒时间戳命名
//以流的形式保存图片
$write_fd = @fopen($pic_name,"wb");
@fwrite($write_fd, CurlGet($pic_item));
@fclose($write_fd);
echo "[OK]..!";
}
return 0;
}
//通过微秒时间获得唯一ID
function get_unique(){
list($msec, $sec) = explode(" ",microtime());
return $sec.intval($msec*1000000);
}
//抓取网页内容
function CurlGet($url){
$url=str_replace('&','&',$url);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
//curl_setopt($curl, CURLOPT_REFERER,$url);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; SeaPort/1.2; Windows NT 5.1; SV1; InfoPath.2)");
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 0);
$values = curl_exec($curl);
curl_close($curl);
return $values;
}
?>
[2]PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
来源: 互联网 发布时间: 2013-11-30
代码如下:
$command = '/usr/bin/php /pub/www/u111/job/Crondo/auto_collector.php &';
$process = proc_open($command, array(),$pipes);
$var = proc_get_status($process);
proc_close($process);
//pid就是进程ID,至于为什么要加1,我现在也没有搞懂,经过多次的测试,发现$var['pid']得到的ID比实际的少1
$pid = intval($var['pid'])+1;
//杀死进程
proc_close(proc_open('kill -9 '.$pid, array(), $pipes));
[3]php去除重复字的实现代码
来源: 互联网 发布时间: 2013-11-30
方法一:
$text = '数组aabbccdd';
$text_filter = '';
$filter = array();
$len = mb_strlen($text, 'utf-8');
for ($i = 0; $i<$len; $i++) {
$char = mb_substr($text, $i, 1, 'utf-8');
if (!isset($filter[$char])) {
$text_filter .= $char;
$filter[$char] = $char;
}
}
echo $text_filter;
方法二:
$string= '数组aabbccdd';
function str_split_utf8($str) {
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]);
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
print_r(array_unique(str_split_utf8($string)));
方法三:
就是把每一个字分割在数组里再用array_unique()这个函数。
代码如下:
$text = '数组aabbccdd';
$text_filter = '';
$filter = array();
$len = mb_strlen($text, 'utf-8');
for ($i = 0; $i<$len; $i++) {
$char = mb_substr($text, $i, 1, 'utf-8');
if (!isset($filter[$char])) {
$text_filter .= $char;
$filter[$char] = $char;
}
}
echo $text_filter;
方法二:
代码如下:
$string= '数组aabbccdd';
function str_split_utf8($str) {
$split=1;
$array = array();
for ( $i=0; $i < strlen( $str ); ){
$value = ord($str[$i]);
if($value > 127){
if($value >= 192 && $value <= 223)
$split=2;
elseif($value >= 224 && $value <= 239)
$split=3;
elseif($value >= 240 && $value <= 247)
$split=4;
}else{
$split=1;
}
$key = NULL;
for ( $j = 0; $j < $split; $j++, $i++ ) {
$key .= $str[$i];
}
array_push( $array, $key );
}
return $array;
}
print_r(array_unique(str_split_utf8($string)));
方法三:
就是把每一个字分割在数组里再用array_unique()这个函数。
最新技术文章: