图片服务器和WEB应用服务器相分离的简单方案
2012/10/26 10:56 ArthurXF
只是简单说明一下原理,其它的自己探索吧:)
一、两个域名:www.domain.com和img.domain.com
二、在www域名的服务器中上传文件:
up.html
Html代码
1.<form name="myform" action="save.php?action=ok" method="POST" enctype="multipart/form-data" >
2.<input type="file" name="itname" value="">
3.<input type="submit" name="tt" value="upit">
4.</form>
save.php
Php代码
1.if(@$_GET['action']=="ok")
2.{
3.$picname="upfile/".rand().".jpg";
4.move_uploaded_file($_FILES['itname']['tmp_name'],$picname);
5.}
6.
7.$ftp_server="img.domain.com";//要连接的服务器域名
8.$con=ftp_connect($ftp_server);//连接FTP服务器
9.ftp_login($con,"username","password");//发送用户名和密码
10.$tempstate=ftp_put($con,"drckness.jpg",$picname,FTP_BINARY)//以二进制方式上传文件
11.if($tempstate){
12.echo "上传成功";
13.unlik($picname);//删除www服务器上的图片当然你也可以保留
14.}else{
15.echo "上传未成功";
16.
17.};
18.ftp_quit($conn);// 关闭联接,不然会一直开着占用资源
以上只是说明如何实现图片和WEB分离的原理。在实际开发中,还要进行如:上传检测,水印,缩略图生成,冗余判断,延时间操作,图片路径记录等操作。
但只要明白了原理其它的应该不在话下了吧:)
一、两个域名:www.domain.com和img.domain.com
二、在www域名的服务器中上传文件:
up.html
Html代码
1.<form name="myform" action="save.php?action=ok" method="POST" enctype="multipart/form-data" >
2.<input type="file" name="itname" value="">
3.<input type="submit" name="tt" value="upit">
4.</form>
save.php
Php代码
1.if(@$_GET['action']=="ok")
2.{
3.$picname="upfile/".rand().".jpg";
4.move_uploaded_file($_FILES['itname']['tmp_name'],$picname);
5.}
6.
7.$ftp_server="img.domain.com";//要连接的服务器域名
8.$con=ftp_connect($ftp_server);//连接FTP服务器
9.ftp_login($con,"username","password");//发送用户名和密码
10.$tempstate=ftp_put($con,"drckness.jpg",$picname,FTP_BINARY)//以二进制方式上传文件
11.if($tempstate){
12.echo "上传成功";
13.unlik($picname);//删除www服务器上的图片当然你也可以保留
14.}else{
15.echo "上传未成功";
16.
17.};
18.ftp_quit($conn);// 关闭联接,不然会一直开着占用资源
以上只是说明如何实现图片和WEB分离的原理。在实际开发中,还要进行如:上传检测,水印,缩略图生成,冗余判断,延时间操作,图片路径记录等操作。
但只要明白了原理其它的应该不在话下了吧:)
Unable to find the wrapper "https"错误的解决办法
2011/12/22 12:27 ArthurXF
PHP.ini默认配置下,用file_get_contents读取https的链接,就会如下错误:
Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
这个错误分3种解决方案:
1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。
2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。
3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换啊。还有相应的参数配置才能正常使用curl函数。
Warning: fopen() [function.fopen]: Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?
这个错误分3种解决方案:
1.windows下的PHP,只需要到php.ini中把extension=php_openssl.dll前面的;删掉,重启服务就可以了。
2.linux下的PHP,就必须安装openssl模块,安装好了以后就可以访问了。
3.如果服务器你不能修改配置的话,那么就使用curl函数来替代file_get_contents函数,当然不是简单的替换啊。还有相应的参数配置才能正常使用curl函数。
MYSQL多表查询结果合并的办法
2011/09/07 15:27 ArthurXF
$query_rs .= "SELECT * FROM biweb_news WHERE title LIKE ''%biweb%''
OR content LIKE ''%biweb%'' UNION SELECT * FROM biweb_user WHERE title LIKE
''%biweb%'' OR content LIKE ''%biweb%'' ORDER BY submit_date DESC";
使用UNION可以把多个select的结果集合并后,进行排序,可以轻松实现多表查询结果合并。
ArthurXF倾情奉献!
OR content LIKE ''%biweb%'' UNION SELECT * FROM biweb_user WHERE title LIKE
''%biweb%'' OR content LIKE ''%biweb%'' ORDER BY submit_date DESC";
使用UNION可以把多个select的结果集合并后,进行排序,可以轻松实现多表查询结果合并。
ArthurXF倾情奉献!
google地图 地点to坐标的
2011/05/30 18:34 ArthurXF
http请求格式
http://maps.google.com/maps/geo?q=查询关键字&output=kml(输出格式可以为xml kml json)&oe=utf8&sensor=true或者false&key=你的apikey
示例
http://maps.google.com/maps/geo?q=湖南大学软件学院&output=kml&key=abcdefg(api key)
输出kml文件如下:
view plaincopy to clipboardprint?
01.
02.
03.湖南大学软件学院
04.
05.
06.geocode
07.
08.
09. 中国湖南省长沙市岳麓区麓山南路252号湖南大学软件学院
10.CN 中国 湖南省 长沙市 岳麓区 麓山南路252号 湖南大学软件学院
11.
12.
13.
14.112.9448710,28.1724490,0
15.
16.
湖南大学软件学院
geocode
中国湖南省长沙市岳麓区麓山南路252号湖南大学软件学院
CN 中国 湖南省 长沙市 岳麓区 麓山南路252号 湖南大学软件学院
112.9448710,28.1724490,0
解释
为查询关键字标签
为关键字对应的详细地址
国家
省份名
城市名
区名
路名及门牌号
< src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" type="text/javascript">
< src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript">
t;经度,纬度
详细api文档请浏览 http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/
http://www.step1.cn/googleapi/map/kml.htm
?xml>?xml> >>
http://maps.google.com/maps/geo?q=查询关键字&output=kml(输出格式可以为xml kml json)&oe=utf8&sensor=true或者false&key=你的apikey
示例
http://maps.google.com/maps/geo?q=湖南大学软件学院&output=kml&key=abcdefg(api key)
输出kml文件如下:
view plaincopy to clipboardprint?
01.
02.
03.
04.
05.
200
06.
07.
08.
09. 中国湖南省长沙市岳麓区麓山南路252号湖南大学软件学院
10.
11.
12.
13.
14.
15.
16.
200
中国湖南省长沙市岳麓区麓山南路252号湖南大学软件学院
解释
为关键字对应的详细地址
< src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" type="text/javascript">
< src="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript">
t;
详细api文档请浏览 http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/
http://www.step1.cn/googleapi/map/kml.htm
?xml>?xml>
* 屏幕快照
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
?>
* 抓取一个窗口(IE为例)
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
$im = imagegrabscreen();
?>
* 抓取IE窗口及窗口内容(IE为例)
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://blog.thepimp.net");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>
* IE全屏模式
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->FullScreen = true;
$browser->Navigate("http://blog.thepimp.net");
/* Is it completely loaded? (be aware of frames!)*/
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>
需要说明几点
1.这二种方法只能工作在windows下面,
2.黑屏解决办法--->>web 服务器(iis或apache)做为windows服务时,必须打开"允许与桌面交互"的选项.(点击服务属性->登录->勾选"允许与桌面交互".(一定要记得重起apache或其他的服务器才会有用,我已经成功,无庸质疑)
3.需要gb库版本为2.0.34(php5.2.2默认自带)
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
?>
* 抓取一个窗口(IE为例)
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
$im = imagegrabscreen();
?>
* 抓取IE窗口及窗口内容(IE为例)
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://blog.thepimp.net");
/* Still working? */
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>
* IE全屏模式
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->FullScreen = true;
$browser->Navigate("http://blog.thepimp.net");
/* Is it completely loaded? (be aware of frames!)*/
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>
需要说明几点
1.这二种方法只能工作在windows下面,
2.黑屏解决办法--->>web 服务器(iis或apache)做为windows服务时,必须打开"允许与桌面交互"的选项.(点击服务属性->登录->勾选"允许与桌面交互".(一定要记得重起apache或其他的服务器才会有用,我已经成功,无庸质疑)
3.需要gb库版本为2.0.34(php5.2.2默认自带)