文档标签: dev
上一次做表情的时候,需要接见一些表情图片,于是想到了oschina上的表情,就想一下就将所有的表情下载下来!
看一下PHP如何实现远程文件复制的
[php]
<?php
for ($i = 0; $i < 135; $i++){
httpcopy("http://my.oschina.net/js/ke/plugins/emoticons/".$i.".gif");
}
function httpcopy($url, $file="", $timeout=60) {
$file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
$dir = pathinfo($file,PATHINFO_DIRNAME);
!is_dir($dir) && @mkdir($dir,0755,true);
$url = str_repl...
题要求
http://www.dutuwang.net/20051118\200511184688.html
转成
http://www.dutuwang.net/20051118/200511184688.html
就对了
[php]
<?php
$str = 'http://www.dutuwang.net/20051118\200511184688.html';
echo str_replace('\\','/',$str);
[/php]
php:ZipArchive文档...
前些时间公司某某的要求:
网站登录页面要有记住用户和密码的功能,于是就写了一个记住密码的小功能,用的是COOKIE
登录页面用的jquery.cookie.js来获取的,
因为当时管这块的人说登录密码不先加密才,数据库也是用的明码。
近期随着项目的完成就要对密码进行加密,当然我们采用的还是md5加密,我记得好像md5是不可逆的吧!
我有一同事说可以解密,我看了网站说的一些观点,也是暴力猜解吧!
加密的同时我还设置了一个安全码,就是在用户的密码前加一段字符。
看看现在遇到的问题吧!以前记住过密码的现在要加密了不能登录,于是我们同事又想了一个办法就是在cookie里面加了一个版本信息。
这样通过判断版本信息就可以解决以前记住了密码的用户通过输入也能登录。
下面看我这边的cookie加码代码:
[php]
//cookie编码过程
function encodecookie($txt){
$key = C('KEY_COOKIE');
for($i = 0; $i < strle...
通常情况下查询日志都有一个时间段,那么我们在查询统计中就要用到时间差了
[php]
/*
*function:计算两个日期相隔多少年,多少月,多少天
*param string $date1[格式如:2011-11-5]
*param string $date2[格式如:2012-12-01]
*return array array('年','月','日');
*/
function diffDate($date1,$date2){
if(strtotime($date1)>strtotime($date2)){
$tmp=$date2;
$date2=$date1;
$date1=$tmp;
}
list($Y1,$m1,$d1)=explode('-',$date1);
list($Y2,$m2,$d2)=explode('-',$date2);
$Y=$Y2-$Y1;
$m=$m2-$m1;
$d...
在用户留言中我们要判断用户发表留言信息距现在的时间差,转换显示成“刚刚”、“几分钟前”、“几小时前”、“昨天”、“前天”
[php]
<?php
date_default_timezone_set('PRC');
$date = "1351836000";
echo tranTime($date);
function tranTime($time)
{
$rtime = date("m-d H:i",$time);
$htime = date("H:i",$time);
$time = time() - $time;
if ($time < 60)
{
$str = '刚刚';
}
elseif ($time < 60 * 60)
{
$min = flo...
error_reporting() 设置 PHP 的报错级别并返回当前级别。
语法:error_reporting(report_level)
如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:
; 错误报告是按位的。或者将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告
; E_ERROR - 致命性运行时错
; E_WARNING - 运行时警告(非致命性错)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是是你的代码的bug引起的,
;也可能是有意的行为造成的。(如:基于未初始化的变量自动初始化为一个
;空字符串的事实而使用一个未初始化的变量)
; E_CORE_ERROR - 发生于PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - 发生于PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_E...
[php]
<?php
class LovePhp
{
//子类,本类,外部都能访问修改。
public function Xphp()
{
echo'Xhpp<br />';
}
//子类和本类可以访问修改,但是外面不能;
//Fatal error: Call to protected method LovePhp::Pphp() from context '' in public.php on line 62
protected function Pphp()
{
return 'Pphp<br />';
}
//子类和外部都不能访问此方法,因为他的访问控制符是private,但是内部可以调用,见下面Dphp()方法;
private function Vphp()
{
re...
php range()函数的用法
[php]
<?php
//输出:cegikmoqsuwy
foreach ( range( c,z, 2 ) as $f ){
echo $f;
}
//输出:12345678910
foreach ( range( 1,10 ) as $f ){
echo $f;
}
//输出:100908070605040302010
foreach ( range( 100,1,10 ) as $f ){
echo $f;
}
?>
[/php]
array range(mixed $start , mixed $limit [, number $step = 1 ]);
$start:序列起始值
$limit:序列结束值...
页面json格式获取数据经常用到,这里用PHP判断数据是否为JSON格式
[php]
<?php
$json_string = json_encode(array(
'blog.9696e.com'
));
echo preg_match('/[^,:{}\\[\\]0-9.\-+Eaeflnr-u \n\r\t]/',$json_string) ? 'yes' : 'no';
[/php]
相信我们经常用JSON进行数据转换来传递数据!今天在网上看到一段小代码是检测是否为JSON格式的,觉得不错。收藏之!...
短路运算可以理解成前面一个条件没有成功,导致短路了,也就是才会触发后面的代码。
看一下php的简单代码就知道短路运算的意思呢!
[php]
mysql_query($sql) or die('Execute failed!');
!file_exists($cache_file) && @update_cache($id);
file_exists($cwd."/download/".$down_id)||mkdir($cwd."/download/".$down_id,0757)
[/php]
[ or ][ || ][ and ][ && ]都是短路运算符
or,||运算符会检查第一个表达式是否返回”true“,如果是”true“则结束语句返回”true“,否则检查下一个表达式。
and,&&运算符检查第一个表达式是否返回”false“,如果是”false“则结束语句并返回”false“,否则检查第二个表达式。
以上正是利用了短路运算符...
以前就看见过说不写结尾符可以防止注入,不知道是真是假,今天在“新一博客”看到了关于我这个话题的文章于是就转载过来了
[php]
<?php
//这是b.php
include a.php
session_start();
?>
[/php]
之前看到很多php文件中都不带php的结束符,今天看到看到一个demo,也刚好解释了不用?>结束符的好处。
由于点点博客的插入代码不支持空格,把a.php截图给大家说明一下!
(请注意第四行,第五行)
[php]
<?php
include 上图的文件.php
session_start();
?>
[/php]
你要是运行第二个文件,就会发现它会抛出警告说header already send out
主要是a.php在PHP结束符调用之后还有几行空白,那么PHP会认为它是HTML代码,这样是不是在调用session_start之前,就已经有header输出了嘛,我们知道,调用session_start之前,是不能有任何输出的,...
php输出由数字和字母组成的两位数:
如果限定是两位数的话要看要没要求首位不为0,如果允许首位为零,答案就是就是36 * 36,也就是求全排列。第一位有36种情况,第二位同样有36种情况。所以答案就是:第一位的36种情况乘以第二位的36种情况=>36 * 36。如果不允许首位为零,那么第一位就是35种情况,答案就是35 * 36.三位四位以此类推,36 * 36 * 36(首位可以为零的三位情况)
[php]
<?php
function all(){
$jichu = array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$c = count($jichu );
for($i=1;$i<=36;$i++){
$j = $...
这节课了解break和continue的使用过程和在循环语句里的作用。
1、break (int); 语句//break的作用就是退出循环体,当break后面加上数字时表明是退出第几层的循环,可以使用在while、do…while、for、foreach、switch这些语句里,担当退出这些语句执行过程需要退出的的角色。
举例:
$i = 1;
while(true){
echo "PHP视频教程".$i;
$i++;
if($i==10){
break;
}
}//这个例子明确的认识到break的使用过程,当循环语句的$i数字自增到10时就执行break语句,直接跳出了while的循环体。
但是:如果给break后面加数字时循环语句的执行过程就有所改变,举例:
while($i++...