Akawa

ETY001的博客

  1. 数组的声明规则:
    (1)数组的名称由一个美元符号开始,第一个字符是字母或下划线,其后是任意数量的字幕,数字或下划线。
    (2)在同一个程序中,标量变量和数组变量都不能重名。
    (3)数组的名称区别大小写。

  2. 通过标示符[]可以直接为数组元素复制,格式如下:
    $array_name[key]=value;或者$array_name[]=value;

  3. 应用array()函数创建数组,语法如下:
    array array([mixed…])
    参数mixed的语法为“key=>value”,多个参数mixed用逗号分开,分别定义了索引(key)和值(value)。应用array函数声明数组时,数组下标既可以是数值索引也可以是关联索引。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$arr1=array('PHP'=>'php','JAVA'=>'java'); //以字符串作为数组索引,指定关键字,关联数组
print_r($arr1);
echo "\n".$arr1['JAVA']."\n";

$arr2=array('PHP','Java'); //以数字作为数组索引,从0开始,没有指定关键字,数字索引数组
print_r($arr2);
echo "\n".$arr2['0']."\n";

$arr3=array(0=>'PHP',1=>'Java',1=>'domyself.me'); //指定相同的索引,后一个将会覆盖之前的值
print_r($arr3);
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
运行结果:
Array
(
[PHP] => php
[JAVA] => java
)

java
Array
(
[0] => PHP
[1] => Java
)

PHP
Array
(
[0] => PHP
[1] => domyself.me
)
  1. 遍历数组有三种方法:
    (1)用foreach遍历数组
    (2)用list()和each()遍历数组
    示例:
1
2
3
4
5
6
<?php
$arr=array(0=>'PHP',1=>'VB',2=>'Java',3=>'VC');
while(list($key,$val)=each($arr)){
echo "$key=$val\n";
}
?>

说明:each()返回数组中当前指针指向位置的键名和对应的值,然后移动指针到下一个位置,返回值就是4个元素的关联数组,通过list()语言结构赋给指定的值。

(3)用for和count()来遍历数组
count($arr)的意思就是$arr的上界。

  1. 输出数组两种方法,一种是直接使用print_f(),一种是使用echo语句。前者可以把数组全部输出,包括结构,后者只能输出指定的数组项,还需要借助循环才能全部输出数组。

  2. 数组函数
    (1)count()统计数组元素个数
    (2)向数组添加元素,array_push()把数组当成一个栈,将传入的变量压入该数组的末尾。语法如下:
    int array_push(array array,mixed var[,mixed…])
    参数array为指定的数组,参数var是压入数组中的值。
    建议:使用[]给数组添加元素。
    (3)获取数组中最后一个元素,同样是把数组当作了栈,函数是:array_pop()。
    (4)删除数组中重复元素,array_unique()
    (5)获取数组中指定元素的键名,array_search(),语法如下:
    mixed array_search(mixed needle,array haystack[,bool strict])
    参数needle指定在数组中搜索的值,如果needle是字符串,则在搜索needle的值时是区分字符串的大小写的。参数haystack指定被搜索的数组。参数strict为可选参数,如果值为true,还将在haystack中检查needle的类型。(该函数区分大小写)
    注意:使用array_search()函数查询数组中的指定元素时,如果查询的元素在数组中多次出现,那么该函数只返回第一个匹配的键名,如果想返回所有的,用array_keys()。

1
2
3
4
5
6
7
补充:
其他的创建数组的方法
array_combine()===以一个数组为关键字,另一个数组为值创建新数组
array_fill()===用值填充一个数组
array_pad()===用一个值把数组填充到指定长度
compact()===创建包含变量及其值的数组
range()===创建一个包含一定范围内的元素的数组

由于已经有了一定的基础,所以我现在写的这个php笔记会跳过很多我已经很熟练的东西,只记录我不熟悉的东西。

  1. foreach循环(擅长处理数组,是遍历数组的一种简单方法)
    语法:
1
2
3
4
5
6
foreach(array_expression as $value)
statement

foreach(array_expression as $key=>$value)
statement
说明:foreach语句将遍历数组array_expression,每次循环时,将当前数组中的值赋给$value(或$key和$value),同时数组指针向后移动,直到遍历结束。

说明:除非数组是被引用,否则foreach所操作的是指定数组的一个拷贝,而不是该数组本身。因此数组指针不会被each()结构改变,对返回的数组单元的修改也不会影响原数组。不过原数组的内部指针的确在处理数组的过程中向前移动了。假定foreach循环运行到结束,原数组的内部指针将指向数组的结尾。另外foreach不支持用“@”来禁止错误信息。

  1. break语句跳出循环体,可以终止当前的循环,即还没有循环到的地方不会再执行(包括while,do…while,for,foreach和switch),另外break还可以跳出几重循环,给是为“break n;”。
    示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
while(1){
for(;;){
for($i=1;$i<=4;$i++){
echo $i."\t";
if($i==3){
echo "<p>变量\$i等于3,跳出第一重循环<p>";
break 1;
}
}
for($j=1;$j<5;$j++){
echo $j."\t";
if($j==4){
echo "<p>变量\$j等于4,跳出最外重循环<p>";
break 3;
}
}
}
}
?>

示例说明:当i=3时,跳出一重循环,当j=4时跳出3重循环,即跳出所有的循环。

continue语句跳出本次循环,即本次循环体不执行,但是不跳出当前循环,不会影响下次循环的执行。

  1. 函数名称不区分大小写(常量和变量区分大小写)。如果误定义了两个不同大小写的重名函数,那么程序将中止运行。
    还有一些函数命名有通用规则,如获取数值用get开头,然后跟上要获取的对象名字;设置数则用set开头,然后跟上要设置的对象的名字。
    关于return:因为return()是语言结构而不是函数,所以仅在参数包含表达式时才需要用括号括起来。当返回一个变量时通常不用括号,也不建议用,这样可以减少php的负担。
    当用引用返回值时,永远不要使用括号。只能通过引用返回变量,而不是语句的结果。如果使用“return($a);”,其返回的不是一个变量,而是表达式($a)的值,当然,此时该值也正是$a的值。(暂时不懂……)

  2. 变量函数不能用于语言结构,例如,each(),print(),unset(),isset(),empty(),include(),require()以及类似的语句,它需要使用自己的外壳函数来将这些结构用作变量函数。

  3. 转义和还原字符串:addslashes()和stripslashes()。
    addslashes()可以给字符串加入斜线“\”,然后对指定字符串中的字符进行转义。它可以转义的字符包括单引号“’”、双引号“””、反斜线”\“,NULL字符”0“。常用的地方就是在生成SQL语句时,对SQL语句中的部分字符进行转义。
    注意:所有数据在插入数据库之前,有必要应用addslashes()进行转义,以免特殊字符在插入数据库的时候出现错误。
    addcslashes()和stripcslashes()函数可以对指定范围内的字符串进行转义和还原。语法如下:
    string addcslashes(string str,string charlist)
    string stripcslashes(string str)

  4. substr()函数从字符串中按照指定位置截取一定长度的字符。如果使用一个正数作为子串起点,来调用这个函数,将得到从起点到字符串结束的这个字符串;如果使用一个负数作为起点,将得到一个原字符串尾部的一个子串,字符个数等于给定负数的绝对值。语法如下:
    string substr(string str,int start[,int length])
    str为指定字符串,start开始截取的位置,length指定了截取字符的个数,若为负数,则表示取到倒数第length个字符。

例子,现在有$str=’abcde’,遂有以下的值:

1
2
3
4
substr($str,0,3)=='abc'
substr($str,-3,3)=='cde'//从倒数第3个字符往后取3个字符
substr($str,0,-3)=='ab'//从第0个字符开始往后取,一直取到倒数第3个字符前一个字符为止。
substr($str,1,3)=='bcd'
  1. strlen()获取字符串长度。

  2. explode()用来分割字符串,语法:
    array explode(string separator,string str[,int limit])

    参数 说明
    separator 必要参数,用于指定分隔符。如果separator为空字符串"",explode()函数将返回false。如果separator所包含的值在str中找不到,那么explode()函数将返回包含str单个元素的数组
    str 必要参数,指定将要被分割的字符串
    limit 可选参数,如果设置了limit参数,则返回的数组中最多包含limit个元素,而最后的元素将包含string的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素

    implode()可以用来将数组中的元素合并成字符串,语法如下:
    string implode(string glue,array pieces)
    glue是字符串类型,用于指定分隔符,pieces是数组类型,即要被合并的数组。

这是《jQuery入门教程笔记》的第九篇,这篇继续讲关于节点的内容,并且将会在这篇中结束jQuery操作DOM这部分内容。 一、插入节点 插入节点分为内部插入节点方法和外部插入节点方法。内部插入节点的意思就是说在元素的内部插入一个新的元素,那么显然外部插入节点方法就是在元素的外部插入一个新的元素。详细见下面两个表格:

先来看看内部插入节点

语法格式 参数说明 功能描述
append(content) content表示追加到目标中的内容 向所选择的元素内部插入内容
append(function(index,html)) 通过function函数返回追加到目标中的内容 向所选择的元素内部插入function函数所返回的内容
appendTo(content) content表示被追加的内容 把所选择的元素追加到另一个指定的元素集合中
prepend(content) content表示插入目标元素内部前面的内容 向每个所选择的内容内部前置内容
prepend(function(index,content)) 通过function函数返回插入目标元素内部前面的内容 向所选择的元素内部插入function函数所返回的内容
prependTo(content) content表示用于选择元素的jQuery表达式 将所选择的元素前置到另一个指定的元素集合中
这里补充一个我的总结:
x.append(y) 在x中插入y y.appendTo(x) 把y插入到x中

接下来是外部插入节点before(content)content表示插入目标元素外部前面的内容向所选择的元素外部后面插入内容insertAfter(content)content表示插入目标元素外部后面的内容将所选择的元素插入另一个指定的元素外部后面

语法格式 参数说明 功能描述
after(content) content表示插入目标元素外部后面的内容 向所选择的元素外部后面插入内容
备注:表中的三个方法都支持function做参数,即用function来代替content。

二、复制节点 在页面中,有时需要将某个元素节点复制到另外一个节点后,如购物网站中购物车的设计。在传统的javascript中,学要写较为复杂的代码,而用jQuery,可以通过clone()轻松实现。 clone()有两种用法,一种是不加参数,一种是加true参数。区别在于:clone()复制匹配的DOM元素并且选中复制成功的元素,该方法仅是复制元素本身,被复制后的新元素不具有任何元素行为。如果想把元素的全部行为都复制,则需要使用clone(true)实现。 示例:

1
2
3
4
5
$(function(){
$("img").click(function(){
$(this).clone(true).appendTo("span");
});
});
备注:该句代码的意思就是当单击img元素的时候,复制该元素并加入到span中去。

三、替换节点 有两种方法: 1、replaceWith(content),该方法的功能是将所有选择的元素替换成指定的HTML或DOM元素,其中参数content为被所选择元素替换的内容。 2、replaceAll(selector),该方法的功能是将所有选择的元素替换成指定selector的元素,其中参数selector为需要替换的元素。 示例:

1
2
3
4
$(function(){
$("#Span1").replaceWith("<span>domyself.me</span>");
$("<span>domyself.me</span>").replaceAll("#Span2");
});
备注:#Span1和#Span2是被替换的元素,请注意替换顺序,另外请注意一旦完成替换,被替换元素中的全部时间都将消失。

四、包裹节点 在jQuery中,不仅可以通过方法替换元素节点,还可以根据需求包裹某个指定的节点,对节点的包裹也是DOM对象操作中很重要的一项,其与包裹节点相关的全部方法如下表:

语法格式 参数说明 功能描述
wrap(html) html参数为字符串代码,用于生成元素并包裹所选元素 把所有选择的元素用其他字符串代码包裹起来
wrap(elem) elem参数用于包装所选元素的DOM元素 把所有选择的元素用其他DOM元素包装起来
wrap(fn) fn参数为包裹结构的一个函数 把所有选择的元素用function函数返回的代码包裹起来
unwrap() 无参数 移除所选元素的父元素或包裹标记
wrapAll(html) html参数为字符串代码,用于生成元素并包裹所选元素 把所有选择的元素用单个元素包裹起来
wrapAll(elem) elem参数用于包装所选元素的DOM元素 把所有选择的元素用单个DOM元素包裹起来
wrapInner(html) html参数为字符串代码,用于生成元素并包裹所选元素 把所有选择的元素的子内容(包括文本节点)用字符串代码包裹起来
wrapInner(elem) elem参数用于包装所选元素的DOM元素 把所有选择的元素的子内容(包括文本节点)用DOM元素包裹起来
wrapInner(fn) fn参数为包裹结构的一个函数 把所有选择的元素的子内容(包括文本节点)用function函数返回的代码包裹起来
示例:
1
2
3
4
$(function(){
$("p").wrap("<strong></strong>");//所有段落标记字体加粗
$("span").wrapInner("<em></em>");//所有段落中的span标记斜体
});
备注:该代码的执行效果是在

domyself.me

的外面加上,即查看源代码时显示的是

domyself.me

,另一句代码的执行效果则是在domyself.me的内部加入,即执行后的效果为,domyself.me

五、遍历元素
在DOM元素操作中,有时需要对同一标记的全部元素进行同一操作。在传统的javascript中,先获取元素的总长度,然后,以for循环依次访问其中的某个元素,代码相对复杂,而在jQuery中,可以直接使用each()方法实现元素的遍历,语法如下:

each(callback)

参数callback是一个function函数,该函数还可以接受一个形参index,此形参为遍历元素的序号(从0开始);如果需要访问元素中的属性,可以借助形参index,配合this关键字来实现元素属性的设置或获取。 示例:

1
2
3
4
$("img").each(function(index){
//根据形参index设置元素的title属性
this.title = index;
});

六、删除元素
两种方法:
remove(),语法格式为remove([expr]),其中参数expr为可选项,如果接受参数,则该参数为筛选元素的jQuery表达式,通过该表达式获取指定的元素,并进行删除。
empty(),其功能为清空所选择的页面元素或所有的后代元素。

用wordpress有段时间了,总结了一点小经验,要想网站被多收录的话,确实需要下一番功夫,推广是必不可少的,但是从我们自身网站结构来说,也有一定的技巧吧,观察了几个网站,在关键字设置上,发现一点:每个文章页面的关键字和描述都是不同的。很值得借鉴,怎么不同呢?首页的关键字和描述是固定的,但是文章页面的关键字是当前文章的标签、描述则是是文章的前100字(可以设置长度)。这样的话,更利于搜索引擎搜索了。

于是乎,这篇文章就诞生啦!

其实很简单,如果你设置了网站关键字的话(手动添加),我已经把代码整理好了

步骤1 :打直接修改源文件(header.php)也好,或者登录后台修改:外观-编辑-选择修改(顶部)header.php文件。

找到代码:(作用:设置关键字)

替换为:

ID);foreach ($tags as $tag ) {$keywords = $keywords . $tag->name . ", ";}echo $keywords;}else{echo ("这里是你网站首页的关键字...");} ?>" />

找到代码:(作用:设置描述)

替换为:

" />

步骤2 :点击“更新文件”保存设置。

这样就OK啦!打开一个文章页面,鼠标右键,查看源文件,看看效果吧!应该会对对收录有好处。

来源:浮云站www.fuyunz.com 原创教程转载注明出处!

这是《jQuery入门教程笔记》的第八篇,这篇讲的是创建节点元素。

函数$()用于动态创建页面元素,其语法如下:

$(html)

其中,参数html表示用于动态创建DOM元素的HTML标记字符串,即如果要在页面中动态创建一个div标记,并设置其内容和属性,可以加入如下代码:

var $div=$(" > > Domyself > > "); $("body").append($div);
阅读全文 »

这是《jQuery入门教程笔记》的第七篇,这一篇将开始新的一章,操作DOM。

对于DOM的解释:当我们创建一个页面并加载到Web浏览器时,DOM模型则根据该页面的内容创建了一个文档文件;单词Object即对象,是指具有独立特性的一组数据集合,例如,我们把新创建的页面文档称之为文档对象,与对象相关联的特征称之为对象属性,访问对象的函数称之为对象方法;单词“Model”即模型,在页面文档中,通过树状模型展示页面的元素和内容,其展示的方式则是通过节点(node)来实现的。让我们来看个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<title>DOM演示</title>
<style type="text/css">
body{
font-size:13px;
}
table,div,p,ul{
width:280px;
border:solid 1px #666;
margin:10px 0px;
padding:0px;
background-color:#eee;
}
</style>
</head>

<body>
<table>
<tr>
<td>Td1</td>
</tr>
<tr>
<td>Td2</td>
</tr>
</table>
<div>Div</div>
<p>P</p>
<div>
<span>Span</span>
</div>
<ul>
<li>Li1</li>
<li>Li2</li>
</ul>
</body>
</html>

一、访问元素

叙述 方法 语法
元素属性操作 获取和设置元素属性:attr()

删除某一属性:removeAttr()

获取:attr(name)

例如:$(“img”).attr(“src”)//获取img标签的src属性值

设置:attr(key,value)//key表示属性的名称,value表示属性的值,当value是函数的时候,函数的返回值将作为value值

attr(key0:value0,key1:value1)//可以一次设置多组

例如:$(“img”).attr(“title”,”domyself”)

$(“img”).attr(title:”domyself”,src:”/images/1.jpg”)

删除:removeAttr(name)

例如:$(“img”).removeAttr(“src”);

元素内容操作 html()和text() 1、html(),用于获取元素的HTML内容

2、html(val),用于设置元素的HTML内容

3、text(),用于获取元素的文本内容

4、text(val),用于设置元素的文本内容

说明:html()方法仅支持XHTML的文档,不能用于XML文档,而text()则既支持HTML文档,也支持XML文档。

获取或设置元素值 val(val)

val().join(“,”)

获取:val(),相当于attr("value")的作用

使用val().join(“,”)可以获取一组值,并用“,”隔开,分隔符可以更换

赋值:val(val),val可以为数组

元素样式操作 css(name,value)

addClass(class)

toggleClass(class)

removeClass([class])

css(name,value),直接修改某项css的值

addClass(class),添加一个class类别,可以用英文逗号隔开添加多个

toggleClass(class),当元素中含有名称为class的CSS类别时,删除该类别,否则增加一个该名称的CSS类别

removeClass([class]),如果不给参数则是清空所有class,可以添加多个class,需要用逗号隔开

鲁大学生网,前身是鲁东大学学生委员会网络信息部,这里有着我大学四年的大部分记忆,从大一加入,到大二大三工作,一直到现在大四了,即使退出管理但依旧还在关注着这个团队~一点一滴真的是在这个过程中结识了很多好朋友,学到了很多技能。我感谢这个团队,希望这个团队所向披靡~

这里就贴一段学生网正式上线时,在发布会现场放的一段视频,这里面有06级、07级学长学姐的面孔,也有我们08级的面孔,还有之后09和10级的童鞋们~

We’re all in this togther!

更多回忆,来看这里:http://sailboat.ldustu.com/2010/12/7.html

这是《jQuery入门教程笔记》的第六篇,这一篇将会作为选择器这部分的一个综合案例。对于选择器,还有几类在之前的笔记中没有提到,这些大家可以百度下,都是能百度的到的。之前笔记略过的部分有:子元素过滤选择器,表单对象属性过滤选择器,表单选择器。

现在开始这一篇的内容,这个综合案例实现的是一个导航条,效果是,单击标题时,可以伸缩导航条的内容,同时,标题中的提示图片也随之改变,另外,单击“简化”链接时,隐藏指定的内容,并将“简化”字样改变成“更多”,单击“更多”链接时,返回初始状态,并改变指定显示元素的背景色。

以下是源代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>导航条在项目中的应用</title>
<script language="javascript" type="text/javascript" src="jquery-1.4.2.min.js"></script>
<style>
body{
font-size:13px;
}
#divFrame{
border:solid 1px #666;
width:301px;
overflow:hidden;
}
#divFrame .clsHead h3{
padding:0px;
margin:0px;
float:left;
}
#divFrame .clsHead span{
float:right;
margin-top:3px;
}
#divFrame .clsContent{
padding:8px;
}
#divFrame .clsContent ul{
list-style-type:none;
margin:0px;
padding:0px;
}
#divFrame .clsContent ul li{
float:left;
width:95px;
height:23px;
line-height:23px;
}
#divFrame .clsBot{
float:right;
padding-top:5px;
padding-bottom:5px;
}
.GetFocus{
background-color:#eee;
}
</style>
<script type="text/javascript">
$(function(){ //页面加载事件
$(".clsHead").click(function(){ //图片单击事件
if($(".clsContent").is(":visible")){ //如果内容可见
$(".clsHead span img")
.attr("src","Images/a1.gif"); //改变图片
//隐藏内容
$(".clsContent").css("display","none");
}else{
$(".clsHead span img")
.attr("src","Images/a2.gif"); //改变图片
//显示内容
$(".clsContent").css("display","block");
}
});

$(".clsBot > a").click(function(){ //热点链接单击事件
//如果内容为“简化”字样
if($(".clsBot > a").text() == "简化"){
//隐藏index号大于4且不是最后一项的元素
$("ul li:gt(4):not(:last)").hide();
//将字符内容更改为“更多”
$(".clsBot > a").text("更多");
}else{
$("ul li:gt(4):not(:last)")
.show()
.addClass("GetFocus");//显示所选元素且增加样式
//将字符内容更改为“简化”
$(".clsBot > a").text("简化");
}
});
});
</script>
</head>
<body>
<div id="divFrame">
<div class="clsHead">
<h3>图书分类</h3>
<span><img src="Images/a2.gif" alt="" /></span>
</div>
<div class="clsContent">
<ul>
<li><a href="#">小说</a><i>(1110)</i></li>
<li><a href="#">文艺</a><i>(230)</i></li>
<li><a href="#">青春</a><i>(1430)</i></li>
<li><a href="#">少儿</a><i>(1560)</i></li>
<li><a href="#">生活</a><i>(870)</i></li>
<li><a href="#">社科</a><i>(1460)</i></li>
<li><a href="#">管理</a><i>(1450)</i></li>
<li><a href="#">计算机</a><i>(1780)</i></li>
<li><a href="#">教育</a><i>(930)</i></li>
<li><a href="#">工具书</a><i>(3450)</i></li>
<li><a href="#">引进版</a><i>(980)</i></li>
<li><a href="#">其他类</a><i>(3230)</i></li>
</ul>
<div class="clsBot"><a href="#">简化</a>
<img src="Images/a5.gif" alt="" />
</div>
</div>
</div>
</body>
</html>

1、如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;

2、echo的效率高于print,因为echo没有返回值,print返回一个整型;

3、在循环之前设置循环的最大次数,而非在在循环中;

4、销毁变量去释放内存,特别是大的数组;

5、避免使用像__get, __set, __autoload等魔术方法;

6、requiere_once()比较耗资源;

阅读全文 »

test1.php文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function posttohost($url, $data) {
$url = parse_url($url);
if (!$url) return “couldn’t parse url”;
if (!isset($url['port'])) { $url['port'] = “”; }
if (!isset($url['query'])) { $url['query'] = “”; }
$encoded = “”;
while (list($k,$v) = each($data)) {
$encoded .= ($encoded ? “&” : “”);
$encoded .= rawurlencode($k).”=”.rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return “Failed to open socket to $url[host]“;
fputs($fp, sprintf(“POST %s%s%s HTTP/1.0\n”, $url['path'], $url['query'] ? “?” : “”, $url['query']));
fputs($fp, “Host: $url[host]\n”);
fputs($fp, “Content-type: application/x-www-form-urlencoded\n”);
fputs($fp, “Content-length: ” . strlen($encoded) . “\n”);
fputs($fp, “Connection: close\n\n”);
fputs($fp, “$encoded\n”);
$line = fgets($fp,1024);
if (!eregi(“^HTTP/1\.. 200″, $line)) return;
$results = “”; $inheader = 1;
while(!feof($fp)) {
$line = fgets($fp,1024);
if ($inheader && ($line == “\n” || $line == “\r\n”)) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
$arrVal["cc"] = 88;
$strTemp = posttohost(“http://www.juuyou.com/test2.php“, $arrVal);
print_r($strTemp);
========================= 我是分隔线 ======================================
test2.php文件如下:
$intC = $_POST["cc"];
for($c=1; $c<$intC; $c++){
echo $c.”|”;
}
0%