function httpRequestGET($url){
$url2 = parse_url($url);
$url2["path"] = ($url2["path"] == "" ? "/" : $url2["path"]);
$url2["port"] = ($url2["port"] == "" ? 80 : $url2["port"]);
$host_ip = @gethostbyname($url2["host"]);
$fsock_timeout=20;
if(($fsock = fsockopen($host_ip, 80, $errno, $errstr, $fsock_timeout)) < 0){
return false;
}
$request = $url2["path"] . ($url2["query"] != "" ? "?" . $url2["query"] : "") . ($url2["fragment"] != "" ? "#" . $url2["fragment"] : "");
$in = "GET " . $request . " HTTP/1.0\r\n";
$in .= "Accept: */*\r\n";
$in .= "User-Agent: Payb-Agent\r\n";
$in .= "Host: " . $url2["host"] . "\r\n";
$in .= "Connection: Close\r\n\r\n";
if(!@fwrite($fsock, $in, strlen($in))){
fclose($fsock);
return false;
}
unset($in);
$out = "";
while($buff = @fgets($fsock, 2048)){
$out .= $buff;
}
fclose($fsock);
$pos = strpos($out, "\r\n\r\n");
$head = substr($out, 0, $pos); //http head
$status = substr($head, 0, strpos($head, "\r\n")); //http status line
$body = substr($out, $pos + 4, strlen($out) - ($pos + 4));//page body
if(preg_match("/^HTTP\/\d\.\d\s([\d]+)\s.*$/", $status, $matches)){
if(intval($matches[1]) / 100 == 2){
return $body;
}else{
return false;
}
}else{
return false;
}
}
function httpRequestPOST($url,$post_data){
$url2 = parse_url($url);
$url2["path"] = ($url2["path"] == "" ? "/" : $url2["path"]);
$url2["port"] = ($url2["port"] == "" ? 80 : $url2["port"]);
$host_ip = @gethostbyname($url2["host"]);
$fsock_timeout=20;//秒
if(($fsock = fsockopen($host_ip, 80, $errno, $errstr, $fsock_timeout)) < 0){
return false;
}
$request = $url2["path"] . ($url2["query"] != "" ? "?" . $url2["query"] : "") . ($url2["fragment"] != "" ? "#" . $url2["fragment"] : "");
$needChar = false;
foreach($post_data as $key => $val) {
$post_data2 .= ($needChar ? "&" : "") . urlencode($key) . "=" . urlencode($val);
$needChar = true;
}
$in = "POST " . $request . " HTTP/1.0\r\n";
$in .= "Accept: */*\r\n";
$in .= "Host: " . $url2["host"] . "\r\n";
$in .= "User-Agent: Lowell-Agent\r\n";
$in .= "Content-type: application/x-www-form-urlencoded\r\n";
$in .= "Content-Length: " . strlen($post_data2) . "\r\n";
$in .= "Connection: Close\r\n\r\n";
$in .= $post_data2 . "\r\n\r\n";
unset($post_data2);
if(!@fwrite($fsock, $in, strlen($in))){
fclose($fsock);
return false;
}
unset($in);
$out = "";
while($buff = fgets($fsock, 2048)){
$out .= $buff;
}
fclose($fsock);
$pos = strpos($out, "\r\n\r\n");
$head = substr($out, 0, $pos); //http head
$status = substr($head, 0, strpos($head, "\r\n")); //http status line
$body = substr($out, $pos + 4, strlen($out) - ($pos + 4));//page body
if(preg_match("/^HTTP\/\d\.\d\s([\d]+)\s.*$/", $status, $matches)){
if(intval($matches[1]) / 100 == 2){
return $body;
}else{
return false;
}
}else{
return false;
}
}
函数调用:
$post_data = array("name"=>"xd","sex"=>"man");
httpRequestPOST("http://localhost/post.php",$post_data);
socket写的顺序:
POST /post.php HTTP/1.0
Accept: */*
Host: localhost
User-Agent: Lowell-Agent
Content-type: application/x-www-form-urlencoded
Content-Length: 15
Connection: Close
name=xd&sex=man
普通POST的结果演示:
Host:127.0.0.1:8000
User-Agent:Mozilla/5.0(Windows;U;WindowsNT5.2;zh-CN;rv:1.9.0.1)Gecko/2008070208Firefox/3.0.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Referer:http://127.0.0.1:8000/?username=111&password=222
Content-Type:application/x-www-form-urlencoded
Content-Length:25
username=111&password=222
Host:127.0.0.1:8000
User-Agent:Mozilla/5.0(Windows;U;WindowsNT5.2;zh-CN;rv:1.9.0.1)Gecko/2008070208Firefox/3.0.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Referer:http://127.0.0.1:8000/?username=1&password=2
POST文件上传的结果演示:
Host:127.0.0.1:8000
User-Agent:Mozilla/5.0(Windows;U;WindowsNT5.2;zh-CN;rv:1.9.0.1)Gecko/2008070208Firefox/3.0.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:zh-cn,zh;q=0.5
Accept-Encoding:gzip,deflate
Accept-Charset:gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive:300
Connection:keep-alive
Referer:http://127.0.0.1:8000/?username=111&password=222
Content-Type:multipart/form-data;boundary=---------------------------23757983230932
Content-Length:1704
-----------------------------23757983230932
Content-Disposition:form-data;name="phototitle"
12
-----------------------------23757983230932
Content-Disposition:form-data;name="photo";filename="技术考核题.txt"
Content-Type:text/plain
技术考核
本次是个编程题,题目选Java/语言进行回答。
问题描述:
假设你的爱好是集邮。目前总共有N种不同的邮票,编号为从0到N-1.每种邮票的价钱被定义在数组int[]prices中(序号从0开始,数组的第i个元素表示第i种邮票的价格)。
你的目标是收集尽可能多种的邮票。你当前拥有的邮票存储在int[]have这个数组中。初始时,你没有钱,但是你可以卖掉已有邮票来买不同的邮票。返回你能收集到的不同种邮票的最大数量。
定义:
class:PostmarksCollection
method:numberOfDistinctPostmarks
Parameters:int[],int[]
Returns:int
Methodsignature:publicintnumberOfDistinctPostmarks(int[]prices,int[]have)
//为了进行测试,必须保证是public
约束:
1)N从1到50
2)prices中的元素数量刚好是N个元素
3)prices中的元素的值,从1到1,000,000
4)have中的元素数量是0个到N个
5)have中的每个元素是不同的
6)have中的每个元素的值是从0到N-1.
例如:
1)
{13,10,14,20}
{3,0,2,1}
Returns:4
你已经拥有所有种类的邮票。
2)
{7,5,9,7}
{}
Returns:0
你开始没有任何邮票,所以你也不能组任何事情。
3)
{4,13,9,1,5}
{1,3,2}
Returns:4
卖掉邮票2,买入邮票0和4,(邮票2的价钱是9,邮票0的价钱是4,邮票4的价钱是5,卖掉2刚好买入0和4)
4)
{16,32,13,2,17,10,8,8,20,17}
{7,0,4,1,6,8}
Returns:8
--------------------------------------------------------------------------------
使用Java请在此处答题(请使用JDK5.0编译,编译不能通过者不计算分数)
-----------------------------23757983230932--
请有使用file_get_contents的同学在调用前进行设置
ini_set('default_socket_timeout', $seconds);
当PHP读取php.ini配置文件中的所有设置信息的同时,它提供了采用ini_set()函数根据per-scrīpt原则更改这些设置的功能。此函数接收两个参数:需要调整的配置变量名,以及变量的新值。
例如,在某脚本出现时增加最大执行时间(maximum execution time):
<?php
ini_set('max_execution_time', 600)
ini_set('display_errors','1');//php默认是不显示错误的,这样可以把错误设置打开
// more code
?>;
这样的设置将仅仅影响被设置的脚本。一旦脚本执行完毕,该变量将自动恢复到原始值。
<?php
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
file_get_contents("http://example.com/", 0, $ctx);
?>
< ?php
$file_contents = file_get_contents('http://www.ccvita.com/');
echo $file_contents;
?>
换成curl函数的使用示例:
< ?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://www.ccvita.com');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?>
file_get_contents来post数据:
HTTP POST with file_get_contents
$post_variables = array('usernamed' => 'rasmus');
$content = http_build_query($post_variables);
$content_length = strlen($content);
$options = array(
'http'=>array(
'method' => 'POST',
'header' =>
"Content-type: application/x-www-form-urlencoded\r\n" .
"Content-length: $content_length\r\n",
'content' => $content
)
);
$context = stream_context_create($options);
$index = file_get_contents('http://www.example.com/index.php', false, $context);
一年一度的网博会在上周落下了帷幕,除去许多全新的游戏,最吸引人的就是靓丽的Showgirl,但看着靓丽的美女难免受到过高的刺激,流鼻血。
刚开始 郁闷了我好长时间..
找了好多地方,网上给出的办法
Discuz和jQuery的冲突有两点,在/include/javascript/common.js文件的
57~64之间有如下代码:
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
function $(id) {
return document.getElementById(id);
}
Discuz为了兼容低版本的IE,重写了Array对象的push方法,但在重写之前没有做任何判断,改为一下形式:
if(typeof Array.prototype.push === 'undefined') {
Array.prototype.push = function(value) {
this[this.length] = value;
return this.length;
}
}
第二点就是Discuz也有$()函数,就只是为了实现getElementById?功能没有人家强大就别学人家用美元符号嘛,占用符号资源。应该学学百度,人家就用一个字符G,多低调不和别人争美元。
关于$()函数的冲突,jQuery中给出了解决方法,jQuery.noConflict(),把美元让给你(看看人家多大肚)。
我们的jQuery代码可以这样写:
var jq = jQuery.noConflict(); //把$让给第一个实现它的库,用jq代替
jq(function()
{
//**********************
}
);
但是 描述不是很清晰...
我自己改了下 ...解决 兼容问题 解决了
<script src="jQuery.js" type="text/javascript"></script>
$(function() {
var jq=jQuery.noConflict(true); //将变量$的控制权让渡给其他库。这样可以确保jQuery不会与其他库的$对象发生冲突。
alert(jq("div").html());//正常 //alert($("div").html());//报错
});
</script>
<div> <p>aaaaaaaaaaaaaaaaa</p></div>
首先我们看jQuery的源代码:
noConflict: function( deep ) {
window.$ = _$;
if ( deep )
window.jQuery = _jQuery;
return jQuery;
}
明显 ,当deep==true的时候,返回jQuery.
所以我们var jq=jQuery.noConflict(true) 这样定义也就可以理解了。
所以cssrain就可以代替jQuery了。从而确保jQuery不会与其他库的$对象发生冲突。
Zend Guard加密后的PHP源程序需要环境中安装Zend Optimizer才可以运行,
同时Zend Optimizer在加密的过程中也可以实现优化代码的作用。
以下为各个Zend Guard版本与Zend Optimizer各版本的对应关系:
Zend Encoder / SafeGuard 3.1 (HOST ID) - Optimizer 2.5.x
Zend Encoder / SafeGuard 3.6 (Zend ID) - Optimizer 2.5.2
Zend Guard 4.x (Basic Encoding) - Optimizer 2.6.x
Zend Guard 5.0 (PHP 4, Basic Encoding) - Optimizer 2.6.x
Zend Guard 4.x (Full Obfuscation) - Optimizer 3.0.x
Zend Guard 5.0 (PHP 4, Full Obfuscation) - Optimizer 3.0.x
Zend Guard 5.0 (PHP 5, All Encoding) - Optimizer 3.3.x
网站开发时经常需要在某个页面需要实现对大量图片的浏览,如果考虑流量的话,大可以像pconline一样每个页面只显示一张图片,让用户每看一张 图片就需要重新下载一下整个页面。不过,在web2.0时代,更多人愿意用javas
知道了一张图片的地址,需要把它在一个固定大小的html容器(可以是div等)里边显示出来,最重要的当然是需要知道这张即将显示的图片的宽和高,然后再结合容器的宽和高,按照一定的缩放比例使图片显示出来。因此,实现图片预加载就成为图片浏览器的核心功能了。
做过图片翻转效果的朋友其实都知道,要让图片轮换的时候不出现等待,最好是先让图片下载到本地,让浏览器缓存起来。这时,一般都会用到js里边的Image对象。一般的手段无非这样:
function preLoadImg(url) {
var img = new Image();
img.src = url;
}
通过调用preLoadImg函数,传入图片的url,就能使图片预先下载下来了。实际上,这里用到的预下载功能也和这基本一致。图片预下载下来后,通过 img的width和height属性,就能知道图片的宽和高了。但是需要考虑到,在做图片浏览器功能时,图片都是实时显示的。比如你点了显示的按钮,这 个时候才会调用上边类似的代码来加载图片。因此,如果你直接用img.width的时候,图片还没有完全下载下来。因此,需要用一些异步的方法,等到图片 下载完毕的时候才会再对img的width和height进行调用。
实现这样的异步方法实际上不难,图片的下载完毕事件也很简单,就是简单的on
function loadImage(url, callback) {
var img = new Image();
img.src = url;
img.on
callback.call(img); // 将callback函数this指针切换为img。
};
}
好了,再来写一个测试用例。
function imgLoaded(){
alert(this.width);
}
<input type="button" value="loadImage" on
在firefox中测试一下,发现不错,果然和预想的效果一样,在图片下载后,就会弹出图片的宽度来。无论点击多少次或者刷新结果都一样。
不过,做到这一步,先别高兴太早——还需要考虑一下浏览器的兼容性,于是,赶紧到ie里边测试一下。没错,同样弹出了图片的宽度。但是,再点击load的时候,情况就不一样了,什么反应都没有了。刷新一下,也同样如此。
经过对多个浏览器版本的测试,发现ie6、opera都会这样,而firefox和safari则表现正常。其实,原因也挺简单的,就是因为浏览器 的缓存了。当图片加载过一次以后,如果再有对该图片的请求时,由于浏览器已经缓存住这张图片了,不会再发起一次新的请求,而是直接从缓存中加载过来。对于 firefox和safari,它们视图使这两种加载方式对用户透明,同样会引起图片的on
怎么办呢?最好的情况是Image可以有一个状态值表明它是否已经载入成功了。从缓存加载的时候,因为不需要等待,这个状态值就直接是表明已经下载了,而从http请求加载时,因为需要等待下载,这个值显示为未完成。这样的话,就可以搞定了。
经过一些分析,终于发现一个为各个浏览器所兼容的Image的属性——complete。所以,在图片on
function loadImage(url, callback) {
var img = new Image(); //创建一个Image对象,实现图片的预下载
img.src = url;
if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
callback.call(img);
return; // 直接返回,不用再处理on
}
callback.call(img);//将回调函数的this替换为Image对象
};
};
经过这么一番折腾,总算是让各个浏览器都能满足我们的目标了。虽然代码很简单,但是却把图片浏览器中最核心的问题解决掉了,接下来你所要做的,仅仅是图片如何呈现的问题了。

也许有一天因为种种原因忘记彼此
只不过有的人忘的快 有点人忘的慢
但是无论我们忘得快或是忘得慢
可生活还是要继续
我们总会熬过去......
所以那些失去的人们就要学会忘记
过去的东西总会被遗忘
在一起的人们应该懂得珍惜 珍惜今天..珍惜现在...
在线观看地址:

刚开始看的时候感觉没什么的电影 但是看到后面真的 好震撼:
尤其男主角的一句话:"我想给她的一切,她都有了。其实我想要的不就是给她幸福吗?
所以只要她快乐的,这快乐是不是我给的,能不能等到她,都不重要了。"
真的一句话诠释了爱情的真谛...爱情并不一定就要得到ta,而是要ta快乐...只要她(他)活得幸福就好!
最后看完电影我流泪了..( ~~~~(>_<)~~~~ ) 尤其结局超震撼的....
突然灵感而生想起了一首诗:
纤云弄巧,飞星传恨,银汉迢迢暗度。金风玉露一相逢,便胜却、人间无数。
柔情似水,佳期如梦,忍顾鹊桥归路。两情若是久长时,又岂在、朝朝暮暮。
最后感谢导演让我做了一次心灵的旅行...大家有时间也来看看吧..
下面的这个是迅雷地址
用到二维数组排序,到手册里面查了下,有这样一个很不错的函数,和数据库里面的order by功能是一样的,把二位数组当成一个数据库的表。数组的key就相当于标的列,数组的value相当于标的行:
$XML_deed_temp=array(
array(’deed_id’=>1,’total’=>’b101′),
array(’deed_id’=>2,’total’=>’3′),
array(’deed_id’=>2,’total’=>’4′),
array(’deed_id’=>5,’total’=>’a5′),
array(’deed_id’=>8,’total’=>’a8′),
array(’deed_id’=>12,’total’=>’a12′),
array(’deed_id’=>11,’total’=>’a11′),
array(’deed_id’=>6,’total’=>’a6′)
);
上面的数组可以看成如下一个数据库表:
deed_id total
—————————-
1 b101
2 3
2 4
5 a5
8 a8
12 a12
11 a11
6 a6
——————————-
排序的时候先要取出其中的一列,然后就可以这样:
array_multisort($sortdeed,, SORT_ASC, $XML_deed_temp);
$XML_deed_temp就是要排序的数组,$sortdeed,就是要排序的列的数组(这个数组要先foreach $XML_deed_temp然后将deed_id那一列取出放到$sortdeed数组里面),如果要实现order by col1,col2这样的,可以把多个列取出进行排序,排序先按col1排,再按col2排
array('deed_id'=>1,'total'=>'b101'),
array('deed_id'=>2,'total'=>'3'),
array('deed_id'=>2,'total'=>'4'),
array('deed_id'=>5,'total'=>'a5'),
array('deed_id'=>8,'total'=>'a8'),
array('deed_id'=>12,'total'=>'a12'),
array('deed_id'=>11,'total'=>'a11'),
array('deed_id'=>6,'total'=>'a6')
);
foreach($XML_deed_temp as $t_k=>$t_v){
$deed_id[]=$t_v['deed_id'];
$total[]=$t_v['total'];
//print_r($t_v);
}
array_multisort($deed_id, SORT_ASC, $total, SORT_ASC, $XML_deed_temp);
print_r($XML_deed_temp);
PHP5是一具备了大部分面向对象语言的特性的语言,比PHP4有了很多的面向对象的特性,但是有部分概念也比较绕人,所以今天拿出来说说,说的不好,请高手见谅. (阅读本文,需要了解PHP5的面向对象的知识)
首先我们来明白上面三个关键字: this,self,parent,从字面上比较好理解,是指这,自己,父亲,呵呵,比较好玩了,我们先建立几个概念,这三个关键字分别是用在什么地方呢?我们初步解释一下,this是指向当前对象的指针(我们姑且用C里面的指针来看吧),self是指向当前类的指针,parent是指向父类的指针。
public:方法或者属性在任何作用域都可以访问到,而且这是默认的,如果没有为一个属性或方法指定访问修饰符,它将是public。
protected:方法或者属性只能从类或者继承类的一个成员中访问到。
private:方法或者属性只能从类的一个成员中访问到,而且无法从继承类的成员中访问到。经过private便签标记的方法或者属性可以在继承类中重新定义。每一个类只能看到它自己定义的私有方法。
在开始看这篇文章前 请首先读以下文章:
http://blog.bigqi.com/read.php?146
http://blog.bigqi.com/read.php?147
1.abstract 关键字
定义所有的父类中的abstract函数,子类中函数的作用域只能被扩大,不能缩小。
在抽象类中定义的方法,也都是抽象方法,
abstract class aaa{
abstract function bbb(); // 这里没有代码的部分
}
当然,如果一个类中有一个或多个抽象的方法,那么这个类就成了抽象类.抽象类不能实例化,只能继承,
(1).使用abstact限定语.
//定义抽象类aaa为母类
abstract class aaa{
abstract function bbb();
abstract function ccc();
}
//用 extends 关键字 定义普通子类 childfromaaa
//继承aaa抽象类
class childfromaaa extends aaa{
//重写所有抽象类中的方法
public function bbb(){
//.....
}
public function ccc(){
//...
}
}
//实例化子类
$child=new childfromaaa;//right
版本更新:
迅雷5.9.8.1090(2009.9.27) 问题解决:
1、修正BHO导致浏览器崩溃、关闭异常的问题
2、修正多个迅雷看看播放组件导致的崩溃
3、修正一个迅雷界面主程序崩溃

还记得异次元曾经给大家分享过谷歌免费的正版音乐服务吗?互联网的音乐服务越来越受到人们的喜爱了,然而传统的音乐在线收听目前已经不能够满足很多人的需求了,很多人可能更加需要基于自己喜爱音乐的风格的音乐推荐。社区作为最为活跃互动的平台,是 web2.0服务的大分支,而其中音乐分享社区因其多媒体、个性化元素而备受年轻人的青睐。随着Web2.0网站的普及,越来越多音乐推荐分享网站发展起来。









