存档

2007年12月 的存档

QQ空间花之神匠破解新代码:7个人参果

2007年12月13日 没有评论

QQ空间是腾讯用户最热衷的服务之一。众所周知,QQ空间里的5级的花是最漂亮的,但是需要你是QQ黄钻或者Q币。最近在网上找到了最新的花之神匠破解代码,和大家一起分享。

其实方法很简单:
地址栏中运行代码【javascript:window.top.space_addItem(7,20981,0,0,0,1,0);
  1.首先自己进入空间,将代码复制并粘贴到地址栏里。

  

复制代码

  2.按回车键,页面刷新,你所要更换的植物就已经刷新了。

  3.单击自定义,再单击保存,就完成了。

  

保存设置

  接下来就能看见最终的效果了:

  

最终效果

  怎么样,还算简单吧。如果无法正常使用,你不妨可以多试几次。笔者用的是QQ空间的最新版本,如果朋友们的空间版本太低有可能不会出现。希望自己的QQ空间长出美丽的花园的朋友抓紧时间尝试一下了,腾讯估计很快就会修复这个 bug了!

分类: 全部文章, 经典网摘 标签:

php函数:list()和each()

2007年12月12日 没有评论

list — 把数组中索引对应的值赋给一些变量

void list ( mixed varname, mixed … )

注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始

each — 返回数组中当前的键/值对并将数组指针向前移动一步
array each ( array &array )
返回 array 数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回为四个单元的数组,键名为 0,1,key 和 value。单元 0 和 key 包含有数组单元的键名,1 和 value 包含有数据。

each() 经常和 list() 结合使用来遍历数组,例如:

<?php
$fruit = array(‘a’ => ‘apple’, ‘b’ => ‘banana’, ‘c’ => ‘cranberry’);
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo “$key => $val\n”;
}
?>
 

php截取百度搜索结果

2007年12月11日 1 条评论

简单的通过file($URL)获取远程网页数据,用implode()函数把数组合并成string,再根据自己的需要,对string进行截取、过滤等个性化处理,基于此思想,可以进一步拓展,估计就是采集器的雏形了。。。

<?php
if(isset($keyword)&&$keyword!=”")
{
$kwd=urlencode($_POST["keyword"]);
$strurl=”http://www.baidu.com/s?wd=”.$kwd.”&cl=3“;
$resarr=file($strurl);
$resstr=implode(” “,$resarr);
$resstr=strstr($resstr,”<DIV id=ScriptDiv></DIV>”);
$footpos=strpos($resstr,’<td style=”font-size:14px;font-weight:bold;height:40px;width:70px;”>相关搜索</td>’);
$resstr=substr($resstr,o,$footpos); echo $resstr;
}else
{
echo”请输入查询单词”;
echo ‘<form name=”search” action=”search.php” method=”post”><input type=”text” name=”keyword”></input> <input name=”submit” type=”submit” value=”搜索”/></form>’;
}
?>

php禁止直接从浏览器访问

2007年12月10日 没有评论

if (basename($HTTP_SERVER_VARS['PHP_SELF']) == “b.php”)
{
header(“HTTP/1.0 404 Not Found”);
}

花1分钟,笑1整天(儿童不宜)

2007年12月10日 没有评论

1:一天蚊子跟螳螂去偷看一女的洗澡,蚊子很自豪的说:看,十年前我在她胸前叮了两口,现在肿的这么大了;螳螂不服气的说,那有什么,我十年前在她两腿间劈了一刀,至今还每个月都在流血……           

2:袋鼠和青蛙去嫖鸡,袋鼠三下两下完事,只听隔壁的青蛙整夜一二三嘿!一二三嘿!袋sd鼠好羡慕,次日,袋鼠说:“哇!~~蛙兄,你好棒哦!。”青蛙说:“操,老子一夜都没跳上床!~~”               

3:一只大象问骆驼:“你的咪咪怎么长在背上?”骆驼说:“死远点,我不和鸡鸡长在脸上的东西讲话!”蛇在旁边听了大象和骆驼的对话后一阵狂笑。大象扭头对蛇说:“笑屁!你个脸长在鸡鸡上的,没资格!”

4、有位穷书生发奋读书,就在自己的房门前写下对联以自励,上联是:‘睡草屋闭户演字’,下联是:‘卧脚塌弄笛声腾’,横批:‘甘从天命’。有一天,一个河南人路过此地,见到这副对联就心生好奇,用他的家乡话大声地念了起来:‘谁操我屁股眼子’,‘我叫他弄得生疼’……呦,还有横批!不过这次他给念反了:‘明天重干!’”      

5:幼儿园女教师领学生游泳,不慎露出一根X毛,一学生问老师,那是什么啊女教师一狠心将其拔掉,说线头!

6:小女孩总是向小男孩炫耀自己的新玩具.小男孩没办法,只好脱掉裤子说这个你永远没有!女孩也脱掉裤子说我妈说只要有这个,你那玩意儿要多少有多少!

7:一排* 女在街边等客,一位八旬老妇见到了,好奇的问:你们在等什么?* 女没好气的说:等棒棒糖!老妇也就排队加入队伍等糖,结果被mop.com抓,mop.com问老妇:你牙都没了也能干?老妇笑着曰:我可以舔的!!!

8:司机送领导参加文艺晚会,领导进了会场,司机被保安拦住,司机说我跟领导是一个系统的,保安说:鸡X跟蛋也是一个系统的,鸡X进去了,蛋能进去吗?      

9、一日,某君的老婆生小孩,他急急忙忙跑到医院,等了n个小时,医生出来告诉他,是龙凤胎!他欣喜若狂:我做爸爸了!这时医生满脸愁容地说:男孩子鸡鸡长在脸上,女孩子咪咪怎么长在背上!某君呆在那,还没明白什么原因。医生问:你是不是老不回帖?

分类: 全部文章, 经典网摘 标签:

php抓取http包头文件

2007年12月10日 1 条评论

简单的一个函数:get_header($URL)

get_headers — Fetches all the headers sent by the server in response to a HTTP request

  抓取服务器端响应http请求发送的头信息

<?php

$url = ‘http://www.sina.com’;

echo “<pre>”;

print_r(get_headers($url));

print_r(get_headers($url, 1));

echo “</pre>”;

?>

 

返回结果

Array(    

[0] => HTTP/1.0 200 OK    

[1] => Date: Sun, 09 Dec 2007 13:43:55 GMT    

[2] => Server: Apache/2.0.54 (Unix)    

[3] => Last-Modified: Sun, 09 Dec 2007 13:42:52 GMT    

[4] => ETag: “86f1a9-4b613-a7f8ef00″    

[5] => Accept-Ranges: bytes    

[6] => X-Powered-By: mod_xlayout_jh/0.0.1vhs.markII.remix    

[7] => Cache-Control: max-age=60    

[8] => Expires: Sun, 09 Dec 2007 13:44:55 GMT    

[9] => Vary: Accept-Encoding     [10] => Content-Type: text/html    

[11] => Age: 58    

[12] => X-Cache: HIT from xa-174.sina.com.cn    

[13] => Connection: close)

 

Array(    

[0] => HTTP/1.0 200 OK    

[Date] => Sun, 09 Dec 2007 13:47:44 GMT   

[Server] => Apache/2.0.54 (Unix)    

[Last-Modified] => Sun, 09 Dec 2007 13:42:52 GMT    

[ETag] => “86f1a9-4b613-a7f8ef00″    

[Accept-Ranges] => bytes    

[X-Powered-By] => mod_xlayout_jh/0.0.1vhs.markII.remix    

[Cache-Control] => max-age=60    

[Expires] => Sun, 09 Dec 2007 13:48:44 GMT    

[Vary] => Accept-Encoding    

[Content-Type] => text/html    

[X-Cache] => MISS from xa-172.sina.com.cn    

[Connection] => close)

php上传文件代码

2007年12月9日 没有评论

上传文件代码
up.html

<html> <head>
<title> Upload   Demo </title> </head>
<body>
<!– The data encoding type, enctype, MUST be specified as below –>
<form enctype=”multipart/form-data” action=”up.php” method=”POST”>
    <!– MAX_FILE_SIZE must precede the file input field –>
    <input type=”hidden” name=”MAX_FILE_SIZE” value=”10000000″ />
    <!– Name of input element determines name in $_FILES array –>
    Send this file: <input name=”uploadfile” type=”file” />
    <input type=”submit” value=”Send File” />
</form>

</body>
</html>

up.php
<?php
echo “welcome!” ;
$savedir=’up/’;
$filename2=$savedir.basename($_FILES['uploadfile']['name']);
    echo “原始文件名:”.$_FILES['uploadfile']['name'];
    echo “临时文件名:”.$_FILES['uploadfile']['tmp_name'];
    echo “<p>”;
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $filename2)) {
    echo “File is valid, and was successfully uploaded.\n”;
    echo $_FILEs['uploadfile']['name'];
    echo $_FILEs['uploadfile']['tmp_name'];
} else {
    echo “Possible file upload attack!\n”;
}
print_r($_FILES);
?>

php语言中的引号

2007年12月9日 没有评论

单引号

指定一个简单字符串的最简单的方法是用单引号(字符 ‘)括起来。

要表示一个单引号,需要用反斜线(\)转义,和很多其它语言一样。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。注意如果试图转义任何其它字符,反斜线本身也会被显示出来!所以通常不需要转义反斜线本身。

注: 和其他两种语法不同,单引号字符串中出现的变量和转义序列不会被变量的值替代。

双引号

如果用双引号(”)括起字符串,PHP 懂得更多特殊字符的转义序列:

表格 11-1. 转义字符

序列

含义

\n

换行(LF 或 ASCII 字符 0x0A(10))

\r

回车(CR 或 ASCII 字符 0x0D(13))

\t

水平制表符(HT 或 ASCII 字符 0×09(9))

\\

反斜线

\$

美元符号

\”

双引号

\[0-7]{1,3}

此正则表达式序列匹配一个用八进制符号表示的字符

\x[0-9A-Fa-f]{1,2}

此正则表达式序列匹配一个用十六进制符号表示的字符

此外,如果试图转义任何其它字符,反斜线本身也会被显示出来!

双引号字符串最重要的一点是其中的变量名会被变量值替代。

更安全的文件名检查

<?php

$username = $_SERVER['REMOTE_USER']; // 使用认证机制

$homedir = “/home/$username”;

if (!ereg(‘^[^./][^/]*$’, $userfile))

die(‘bad filename’); // 停止执行代码

if (!ereg(‘^[^./][^/]*$’, $username))

die(‘bad username’); // 停止执行代码

//后略……

?>

php正则表达式详解

2007年12月9日 没有评论

正则表达式
正则表达式使用详解
如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式;如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式。那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益。

入门简介
  简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具。我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或sed shell程序等。此外,象JavaScript这种客户端的脚本语言也提供了对正则表达式的支持。由此可见,正则表达式已经超出了某种语言或某个系统的局限,成为人们广为接受的概念和功能。
  正则表达式可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与数据文件、程序输入以及WEB页面的表单输入等目标对象进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。
  举例来说,正则表达式的一个最为普遍的应用就是用于验证用户在线输入的邮件地址的格式是否正确。如果通过正则表达式验证用户邮件地址的格式正确,用户所填写的表单信息将会被正常处理;反之,如果用户输入的邮件地址与正则表达的模式不匹配,将会弹出提示信息,要求用户重新输入正确的邮件地址。由此可见正则表达式在WEB应用的逻辑判断中具有举足轻重的作用。

基本语法
  在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。
  正则表达式的形式一般如下:
  /love/
  其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。
  较为常用的元字符包括: “+”, “*”,以及 “?”。其中,“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,而“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
  下面,就让我们来看一下正则表达式元字符的具体应用。
  /fo+/
  因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
  /eg*/
  因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
  /Wil?/
  因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
  除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,
  /jim{2,6}/
  上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。
  在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
  \s:用于匹配单个空格符,包括tab键和换行符;
  \S:用于匹配除单个空格符之外的所有字符;
  \d:用于匹配从0到9的数字;
  \w:用于匹配字母,数字或下划线字符;
  \W:用于匹配所有与\w不匹配的字符;
  . :用于匹配除换行符之外的所有字符。
  (说明:我们可以把\s和\S以及\w和\W看作互为逆运算)
  下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。
  /\s+/
  上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
  /\d000/
  如果我们手中有一份复杂的财务报表,那么我们可以通过上述正则表达式轻而易举的查找到所有总额达千元的款项。
  除了我们以上所介绍的元字符之外,正则表达式中还具有另外一种较为独特的专用字符,即定位符。定位符用于规定匹配模式在目标对象中的出现位置。
  较为常用的定位符包括: “^”, “$”, “\b” 以及 “\B”。其中,“^”定位符规定匹配模式必须出现在目标字符串的开头,“$”定位符规定匹配模式必须出现在目标对象的结尾,\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,而“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。同样,我们也可以把“^”和“$”以及“\b”和“\B”看作是互为逆运算的两组定位符。举例来说:
  /^hell/
  因为上述正则表达式中包含“^”定位符,所以可以与目标对象中以 “hell”, “hello”或 “hellhound”开头的字符串相匹配。
  /ar$/
  因为上述正则表达式中包含“$”定位符,所以可以与目标对象中以 “car”, “bar”或 “ar” 结尾的字符串相匹配。
  /\bbom/
  因为上述正则表达式模式以“\b”定位符开头,所以可以与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。
  /man\b/
  因为上述正则表达式模式以“\b”定位符结尾,所以可以与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。
  为了能够方便用户更加灵活的设定匹配模式,正则表达式允许使用者在匹配模式中指定某一个范围而不局限于具体的字符。例如:
  /[A-Z]/
  上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。
  /[a-z]/
  上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。
  /[0-9]/
  上述正则表达式将会与从0到9范围内任何一个数字相匹配。
  /([a-z][A-Z][0-9])+/
  上述正则表达式将会与任何由字母和数字组成的字符串,如 “aB0” 等相匹配。这里需要提醒用户注意的一点就是可以在正则表达式中使用 “()” 把字符串组合在一起。“()”符号包含的内容必须同时出现在目标对象中。因此,上述正则表达式将无法与诸如 “abc”等的字符串匹配,因为“abc”中的最后一个字符为字母而非数字。
  如果我们希望在正则表达式中实现类似编程逻辑中的“或”运算,在多个不同的模式中任选一个进行匹配的话,可以使用管道符 “|”。例如:
  /to|too|2/
  上述正则表达式将会与目标对象中的 “to”, “too”, 或 “2” 相匹配。
  正则表达式中还有一个较为常用的运算符,即否定符 “[^]”。与我们前文所介绍的定位符 “^” 不同,否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串。例如:
  /[^A-C]/
  上述字符串将会与目标对象中除A,B,和C之外的任何字符相匹配。一般来说,当“^”出现在 “[]”内时就被视做否定运算符;而当“^”位于“[]”之外,或没有“[]”时,则应当被视做定位符。
  最后,当用户需要在正则表达式的模式中加入元字符,并查找其匹配对象时,可以使用转义符“\”。例如:
  /Th\*/
  上述正则表达式将会与目标对象中的“Th*”而非“The”等相匹配。

使用实例

  在对正则表达式有了较为全面的了解之后,我们就来看一下如何在Perl,PHP,以及JavaScript中使用正则表达式。

  通常,Perl中正则表达式的使用格式如下:

  operator / regular-expression / string-to-replace / modifiers

  运算符一项可以是m或s,分别代表匹配运算和替换运算。

  其中,正则表达式一项是将要进行匹配或替换操作的模式,可以由任意字符,元字符,或定位符等组成。替换字符串一项是使用s运算符时,对查找到的模式匹配对象进行替换的字符串。最后的参数项用来控制不同的匹配或替换方式。例如:

  s/geed/good/

  将会在目标对象中查找第一个出现的geed字串,并将其替换为good。如果我们希望在目标对象的全局范围内执行多次查找—替换操作的话,可以使用参数 “g”,即s/love/lust/g。

  此外,如果我们不需要限制匹配的大小写形式的话,可以使用参数 “i ”。例如,

  m/JewEL/i

  上述正则表达式将会与目标对象中的jewel,Jewel,或JEWEL相匹配。

  在Perl中,使用专门的运算符“=~”指定正则表达式的匹配对象。例如:

  $flag =~ s/abc/ABC/

  上述正则表达式将会把变量$flag中的字串abc替换为ABC。

  下面,我们就在Perl程序中加入正则表达式,验证用户邮件地址格式的有效性。代码如下:

  #!/usr/bin/perl
  # get input
  print “What’s your email address?\n”;
  $email = <STDIN>
  chomp($email);
  # match and display result
  if($email =~ /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/)
  {
  print(“Your email address is correct!\n”);
  }
  else
   {
    print(“Please try again!\n”);
   }

  如果用户更偏爱PHP的话,可以使用ereg()函数进行模式匹配操作。ereg()函数的使用格式如下:
   ereg(pattern, string)

  其中,pattern代表正则表达式的模式,而string则是执行查找替换操作的目标对象。同样是验证邮件地址,使用PHP编写的程序代码如下:

  <?php
   if (ereg(“^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+”,$email))
    { echo “Your email address is correct!”;}
   else
    { echo “Please try again!”;}
   ?>
  最后,我们在来看一下JavaScript。JavaScript 1.2中带有一个功能强大的RegExp()对象,可以用来进行正则表达式的匹配操作。其中的test()方法可以检验目标对象中是否包含匹配模式,并相应的返回true或false。

  我们可以使用JavaScript编写以下脚本,验证用户输入的邮件地址的有效性。

  <html>
   <head>
    <script language="Javascript1.2">
     <!– start hiding
     function verifyAddress(obj)
     {
      var email = obj.email.value;
      var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
      flag = pattern.test(email);
      if(flag)
      {
       alert(“Your email address is correct!”);
       return true;
      }
      else
       {
        alert(“Please try again!”);
        return false;
        }
      }
     // stop hiding –>
    </script>
   </head>
   <body>
   <form onSubmit="return verifyAddress(this);">
   <input name="email" type="text">
   <input type="submit">
   </form>
  </body>
 </html>