php curl抓取远程图片

function download_file($file_name, $url) {
$ch = curl_init($url);
$fp = fopen($file_name, "wb");
// set URL and other appropriate options
$user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;';
$url_info = parse_url($url);
$host = $url_info['host'];
$header = array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Charset: UTF-8,*',
'Accept-Encoding: deflate',
'Accept-Language: en-us,en;q=0.5',
'Connection: keep-alive',
"Host: {$host}",
"User-Agent: {$user_agent}",
);
$options = array(CURLOPT_FILE => $fp,
/*CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_REFERER => $url,
CURLOPT_TIMEOUT => 240
*/
CURLOPT_HEADER => 0,
CURLOPT_FOLLOWLOCATION => 1,
CURLOPT_TIMEOUT => 240,
CURLOPT_HTTPHEADER => $header,
); // 1 minute timeout (should be enough)

curl_setopt_array($ch, $options);
$ret = curl_exec($ch);
if (!$ret) {
var_export(curl_error($ch));
}
curl_close($ch); fclose($fp); return $ret;
}
function getinfo($uri) {
// start output buffering
ob_start();
// initialize curl with given uri
$ch = curl_init($uri);
$user_agent = ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;';
$url_info = parse_url($uri);
$host = $url_info[‘host’];
$header = array(
‘Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8′,
‘Accept-Charset: UTF-8,*’,
‘Accept-Encoding: gzip, deflate’,
‘Accept-Language: en-us,en;q=0.5′,
‘Connection: keep-alive’,
“Host: {$host}”,
“User-Agent: {$user_agent}”,
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
// make sure we get the header
curl_setopt($ch, CURLOPT_HEADER, 1);
// make it a http HEAD request
curl_setopt($ch, CURLOPT_NOBODY, 1);

$okay = curl_exec($ch);
curl_close($ch);
// get the output buffer
$head = ob_get_contents();
// clean the output buffer and return to previous
// buffer settings
ob_end_clean();

// gets you the numeric value from the Content-Length
// field in the http header
var_export($head);exit;
$regex = ‘@Content-Length:\s(\d+)@';
$count = preg_match($regex, $head, $matches);
// if there was a Content-Length field, its value
// will now be in $matches[1]
if(isset($matches[1])){
$size = $matches[1];
}else{
$size = 0;
}
$regex = ‘@Content-Type:\simage/(\w+)@';

$count = preg_match($regex, $head, $matches);
// if there was a Content-Length field, its value
// will now be in $matches[1]
if(isset($matches[1])){
$type = $matches[1];
}else{
$type = ”;
}
//$last=round($size/(1024*1024),3);
//return $last.’ MB';
return array(‘size’ => $size, ‘type’ => $type);
}
function getext($filename) {
return substr(strrchr($filename, ‘.’), 1);
}
$valid_file_type = array(
‘jpeg’ => ‘jpg’,
‘png’ => ‘png’,
‘gif’ => ‘gif’,
);

$url = ‘http://hiphotos.baidu.com/hackers365/pic/item/aa8b9a338d6f5518ac4b5fe6.jpg';
/*
$file_info = getinfo($url);
var_export($file_info);
$filename = basename($url);
$ext = $valid_file_type[$file_info[‘type’]];
if ($ext != getext($filename)) {
$filename .= ‘.’ . $ext;
}
var_export($filename);*/
download_file(‘/tmp/hacker.jpg’, $url);

做女人就要做妖精[转]

老公发贴,老婆如果跟在后面灌水,捧场,那是妖精
老公发贴,老婆另起一贴骂男人是天下乌鸦一般黑的,那是妖怪。

老公和网友视频的时候,自己穿件显示出自己身材的性感衣服出现在他身后,那是妖
精。
老公和网友视频,摔了一个杯子然后冲过来把插头拔掉的,那是妖怪。

老公想抽烟的时候及时帮忙点上火,并且给自己也来一根,那是妖精。
老公想抽烟的时候恶狠狠抢去他嘴里的烟,踩在地上的,那是妖怪。

老公打酣,捏老公鼻子,是妖精。
老公打酣,用脚踹的方式停止鼾声的,是妖怪。

老公的钱完全不用上缴,自己经常用信用卡透支买一件好看衣服回来,撒着娇要老公
买单的,是妖精。
老公的钱全部上缴,按天领零花钱,还嫌跟了他倒了霉的,是妖怪。

老公请朋友回家吃饭,里里外外都老婆包下,烟茶都上好,老公的任务只是陪客人抽
烟喝茶,客人走了以后,什么都不管,让老公收拾残局,这个是妖精。
老公请朋友回家吃饭,给个冷脸,马上出门转悠,等人走了以后大骂老公的交的朋友
没档次的,那是妖怪。

老公熬夜晚了,穿着性感内衣到老公视线所及的地方转悠,什么也不说,那是妖精。
老公熬夜晚了,和衣而睡,听到键盘响发出一声怒吼的,那是妖怪。

老公洗澡,自己也脱了加入进去,还要老公搓背,是妖精。
老公洗澡,抱怨他洗那么半天,浪费煤气,那是妖怪。

老公电脑里有MM图片,眼热之余自己也脱了衣服照几张偷偷存进去,那是妖精。
老公电脑里有MM图片,拧着老公耳朵怒骂:你怎么不和她们睡觉去啊,那是妖怪。

老公不爱修边幅,亲手给老公梳理定型一个酷的发型,那是妖精。
老公不爱修边幅,自己花几百元去做个头发,然后暗示两人已经有代沟,那是妖怪。

老公不爱穿戴,自己亲自去挑选衣服回来给老公试穿,而且总是合身的,还夸老公身
材好,穿什么都好看的,那是妖精。
老公不爱穿戴,用老公的钱去给自己买一套衣服,然后逢人就说自己老公老土,穿什
么不象什么,那是妖怪。

老公留有初恋情人的情书,自己偷偷看了,原样放回去,找个机会和老公曾经和她约
会的地方,也说一句曾让老公印象深刻的对白,那是妖精。
老公留有初恋情人的情书,自己偷偷看了以后当破烂卖了,而且对里面肉麻章节倒背
如流,那是妖怪。

老公睡觉,老婆一切打理完毕然后脱得光光钻进被窝,那是妖精。
老公睡觉,老婆脸上还敷着面膜穿着厚实的睡衣,那是妖怪。

老公累了,老婆不会强行索吻,而是吻了吻老公的额头,抱着老公,闭着眼睛什么话
都不说,等老公自己主动,那是妖精。
老公累了,拉开被子仔细检查他全身是否有可疑之处,不管自己想不想,反正不交公
粮绝不许睡的,那是妖怪。

老公和男女同事出去集体活动,把自己打扮得漂亮年轻,缠着要去玩的,那是妖精。
老公和男女同事出去集体活动,披头散发冲进现场用眼光杀死所有在场女人,然后把
老公拉走的,那是妖怪。

老公开车,一路夸他开的好,是个天才,那是妖精。
老公开车,一路提醒他看这看那,抱怨他莽莽撞撞,别出人命,那是妖怪。

老公吃零食,和他嘴对嘴地分享一块食物,共喝一口水,那是妖精。
老公吃零食,抱怨老公象个女人,象饿狼和老鼠,那是妖怪。

老公醉得厉害,还要坚持骑摩托车回去,老婆坐在他车座后,做飞翔状大喊
“IAMTHEKINGOFTHEWORLD!”那是妖精。
老公醉得厉害,老婆把车一锁,所有东西一拿,打的回家,留他在原地郁闷,那是妖
怪。

老公手机有短信有电话,故意扭过头去,装没听见,搞得老公还不好意思,一定非要
她看内容看号码不可,这是妖精。
老公手机有短信有电话,马上一把抢过来,来一句:“我是他爱人,你是谁呀”,那是
妖怪

php编译时出现的几个问题

编译参数

‘./configure’  ‘–prefix=/usr/local/php.5.3.10′

‘–enable-fpm’

‘–with-openssl’

‘–with-pcre-regex’

‘–with-zlib’

‘–with-bz2′

‘–with-curl’

‘–with-gd’

‘–with-gettext’

‘–enable-mbstring’

‘–with-mcrypt’

‘–with-mysql=/usr/local/mysql’

‘–with-pdo-mysql’

‘–enable-zip’

‘–with-pear’

‘–with-libdir=lib64′

‘–enable-exif’

‘–enable-sockets’

‘–enable-ftp’

‘–with-gmp’

‘–with-mhash’

‘–with-mysqli=/usr/local/mysql/bin/mysql_config’

‘–enable-pcntl’

‘–with-snmp’

‘–enable-soap’

‘–enable-sysvmsg’

‘–with-tidy’

‘–enable-wddx’

‘–with-kerberos’

‘–with-jpeg-dir’

‘–with-png-dir’

‘–with-freetype-dir’

‘–with-readline’

–enable-bcmath

–with-mysql-sock=/tmp/mysql.sock

1. configure: error: Cannot find libmysqlclient under /usr/local/mysql

原因是因为我编译是64位系统。而mysql二进制分发包里是lib。。

解决方法:

ln -s /usr/local/mysql/lib /usr/local/mysql/lib64

2. checking for mysql_config… not found

ln -s /usr/local/mysql/bin/mysql_config /usr/bin/mysql_config

3. /usr/bin/ld: cannot find -lltdl

wget http://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.4.tar.gz

make

make install

PHP Warning: Xdebug MUST be loaded as a Zend extension in Unknown on line 0 解决办法

;extension=php_xdebug.dll
zend_extension_ts= “X:\php\ext\php_xdebug.dll”

另:根据 PHP 版本,zend_extension 指令可以是以下之一:

zend_extension (non ZTS, non debug build)
zend_extension_ts ( ZTS, non debug build)
zend_extension_debug (non ZTS, debug build)
zend_extension_debug_ts ( ZTS, debug build)

ZTS:ZEND Thread Safety

可通过phpinfo()查看ZTS是否启用,从而决定用zend_extension还是zend_extension_ts。

extension意为基于php引擎的扩展

zend_extension意为基于zend引擎的扩展

注:php是基于zend引擎的

不同的扩展安装后,在php.ini里是用extension还是zend_extension,是取决于该扩展,有的扩展可能只能用 zend_extension,如xdebug,也有的扩展可以用extension或zend_extension,如mmcache。

注:上面的结论不保证准确。

zend_extension加载php扩展时需用全路径,而extension加载时可以用相对extension_dir的路径。

 

 

转自:http://blog.163.com/lgh_2002/blog/static/440175262010910103342213/