先看chr函数
chr() 函数从指定的 ASCII 值返回字符。
chr(ascii)
ascii 参数可以是十进制、八进制或十六进制。通过前置 0 来规定八进制,通过前置 0x 来规定十六进制
例子
代码如下 | 复制代码 |
<?php 4 |
是不是很神奇,其实也不怪我经常会把一些看不到编码用chr来操作如
代码如下 | 复制代码 |
<? echo chr(13); echo chr(32); ?> |
大家想想这会输出什么呢,结果是
一个回车,一个空格
下面再来看ord函数
ord() 函数返回字符串第一个字符的 ASCII 值。
从上面来看正好与chr 相反是吧,
语法
代码如下 | 复制代码 |
ord(string) 输出结果: 104 |
好了,现在我们来看一个综合的实例
代码如下 | 复制代码 |
<?php $str1=chr(88); echo $str1; //返回值为X $str2=chr(ord(X)+1); // echo $str2; //返回值为 Y echo "t"; $str3=ord('S'); echo $str3; //返回值为83 ?> |
下面有一篇关于php ord 函数与中文乱码解决方法
更多详细内容请查看:http://www.111cn.net/phper/php-function/php-ord.htm
php中通过对某个日期增加或减去几天,得到另外一个日期,我们会用两个实例来说明一个是strtotime与mktime把时间转换成时间戳再处理,有需要的同学看看。下例:获得2012-5-1号之前一天的日期
代码如下 | 复制代码 |
<?php |
输出:2012-4-30
此外,time()函数获得当前日期的时间戳!
再看一个实例
代码如下 | 复制代码 |
<?PHP $Date_2=”2009-10-1″; $Date_List_a1=explode(“-”,$Date_1); $Date_List_a2=explode(“-”,$Date_2); $d1=mktime(0,0,0,$Date_List_a1[1],$Date_List_a1[2],$Date_List_a1[0]); $d2=mktime(0,0,0,$Date_List_a2[1],$Date_List_a2[2],$Date_List_a2[0]); $Days=round(($d1-$d2)/3600/24); Echo “两日期之前相差有$Days 天”; |
一些时间参考
代码如下 | 复制代码 |
<?php echo $showtime=date(“Y-m-d H:i:s”);?> |
显示的格式: 年-月-日 小时:分钟:妙
相关时间参数:
a – “am” 或是 “pm”
A – “AM” 或是 “PM”
d – 几日,二位数字,若不足二位则前面补零; 如: “01″ 至 “31″
D – 星期几,三个英文字母; 如: “Fri”
F – 月份,英文全名; 如: “January”
h – 12 小时制的小时; 如: “01″ 至 “12″
H – 24 小时制的小时; 如: “00″ 至 “23″
g – 12 小时制的小时,不足二位不补零; 如: “1″ 至 12″
G – 24 小时制的小时,不足二位不补零; 如: “0″ 至 “23″
i – 分钟; 如: “00″ 至 “59″
j – 几日,二位数字,若不足二位不补零; 如: “1″ 至 “31″
l – 星期几,英文全名; 如: “Friday”
m – 月份,二位数字,若不足二位则在前面补零; 如: “01″ 至 “12″
n – 月份,二位数字,若不足二位则不补零; 如: “1″ 至 “12″
M – 月份,三个英文字母; 如: “Jan”
s – 秒; 如: “00″ 至 “59″
S – 字尾加英文序数,二个英文字母; 如: “th”,”nd”
t – 指定月份的天数; 如: “28″ 至 “31″
U – 总秒数
w – 数字型的星期几,如: “0″ (星期日) 至 “6″ (星期六)
Y – 年,四位数字; 如: “1999″
y – 年,二位数字; 如: “99″
z – 一年中的第几天; 如: “0″ 至 “365″
可以自由设定显示的内容,连接符号或是显示位置,例如 date(“m-d H”) 或者date(“dmY”);?>等
文章很简单二个实例实现了php目录创建与递归无限创建和删除目录功能,有需要的朋友可以参考一下,我们用的是mkdir,rddir来实例的。下面是程序代码:
代码如下 | 复制代码 |
function mkdirs($dir) { if(!is_dir($dir)) { if(!mkdirs(dirname($dir))){ return false; } if(!mkdir($dir,0777)){ return false; } } return true; } mkdirs('div/css/layout'); |
同样的思路,php用rmdir和unlink递归删除多级目录的代码:
代码如下 | 复制代码 |
function rmdirs($dir) |
代码如下 | 复制代码 |
<?php $pagesize = 10;//每一页显示多少留言记录 $sql = "SELECT a . * , b.name, b.email, b.qq, c.revert_time, c.revert $recordSql = $sql. " LIMIT ".$page*$pagesize.",".$pagesize; } <body> <tr> post.php文件 <?php $name = $_POST['name']; if($name==""||strlen($name)>10){ //链接数据库 //把客户信息插入guest表 //把以上插入取得的客户id和留言信息插入到post表中 |
下面为后台管理管理的页面 login.php登录先
代码如下 | 复制代码 |
<?php session_start(); if(isset($_POST['Submit'])){ if(!get_magic_quotes_gpc()){ foreach ($_POST as &$items){ $items = addslashes($items); } } if($_POST['username']=='phpiask'&&md5($_POST['password'])=='6dc88b87062a5de19895e952fa290dad'){ $_SESSION['login']=true; echo "<script>alert('管理员登录成功');location.href='index.php';</script>"; exit(); } else { echo "<script>alert('登录失败!');</script>"; } } ?> <!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> </head> <body> <table> <tr> <td> <form action="login.php" method="POST" name="form1"> 用户名:<input type="text" name="username" size="20"/> 密码:<input type="password" name="password" size="20"> <input type="submit" value="登录" name="Submit"/> <input type="button" onclick="javascript:location.href='index.php'" value="放弃"/> </form> </td> </tr> </table> </body> </html> |
删除留言的delete.php
代码如下 | 复制代码 |
<?php if(!$_SESSION['login']){ if(isset($_GET['id'])&&$_GET['id']!=""){ |
回复留言的revert.php文件
代码如下 | 复制代码 |
<?php if(!$_SESSION['login']){ |
代码如下 | 复制代码 |
<?php /** * * This class for execute the external program of svn * * @auth Seven Yang http://www.111cn.net * */ class SvnPeer { /** * List directory entries in the repository * * @param string a specific project repository path * @return bool true, if validated successfully, otherwise false */ static public function ls($repository) { $command = "svn ls " . $repository; $output = SvnPeer::runCmd($command); $output = implode("<br>", $output); if (strpos($output, 'non-existent in that revision')) { return false; } return "<br>" . $command . "<br>" . $output; } /** * Duplicate something in working copy or repository, remembering history * * @param $src * @param $dst * @param $comment string specify log message * @return bool true, if copy successfully, otherwise return the error message * * @todo comment need addslashes for svn commit */ static public function copy($src, $dst, $comment) { $command = "svn cp $src $dst -m '$comment'"; $output = SvnPeer::runCmd($command); $output = implode("<br>", $output); if (strpos($output, 'Committed revision')) { return true; } return "<br>" . $command . "<br>" . $output; } /** * Remove files and directories from version control * * @param $url * @return bool true, if delete successfully, otherwise return the error message * * @todo comment need addslashes for svn commit */ static public function delete($url, $comment) { $command = "svn del $url -m '$comment'"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); if (strpos($output, 'Committed revision')) { return true; } return "<br>" . $command . "<br>" . $output; } /** * Move and/or rename something in working copy or repository * * @param $src string trunk path * @param $dst string new branch path * @param $comment string specify log message * @return bool true, if move successfully, otherwise return the error message * * @todo comment need addslashes for svn commit */ static public function move($src, $dst, $comment) { $command = "svn mv $src $dst -m '$comment'"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); if (strpos($output, 'Committed revision')) { return true; } return "<br>" . $command . "<br>" . $output; } /** * Create a new directory under version control * * @param $url string * @param $comment string the svn message * @return bool true, if create successfully, otherwise return the error message * * @todo comment need addslashes for svn commit */ static public function mkdir($url, $comment) { $command = "svn mkdir $url -m '$comment'"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); if (strpos($output, 'Committed revision')) { return true; } return "<br>" . $command . "<br>" . $output; } static public function diff($pathA, $pathB) { $output = SvnPeer::runCmd("svn diff $pathA $pathB"); return implode('<br>', $output); } static public function checkout($url, $dir) { $command = "cd $dir && svn co $url"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); if (strstr($output, 'Checked out revision')) { return true; } return "<br>" . $command . "<br>" . $output; } static public function update($path) { $command = "cd $path && svn up"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); preg_match_all("/[0-9]+/", $output, $ret); if (!$ret[0][0]){ return "<br>" . $command . "<br>" . $output; } return $ret[0][0]; } static public function merge($revision, $url, $dir) { $command = "cd $dir && svn merge -r1:$revision $url"; $output = implode('<br>', SvnPeer::runCmd($command)); if (strstr($output, 'Text conflicts')) { return 'Command: ' . $command .'<br>'. $output; } return true; } static public function commit($dir, $comment) { $command = "cd $dir && svn commit -m'$comment'"; $output = implode('<br>', SvnPeer::runCmd($command)); if (strpos($output, 'Committed revision') || empty($output)) { return true; } return $output; } static public function getStatus($dir) { $command = "cd $dir && svn st"; return SvnPeer::runCmd($command); } static public function hasConflict($dir) { $output = SvnPeer::getStatus($dir); foreach ($output as $line){ if ('C' == substr(trim($line), 0, 1) || ('!' == substr(trim($line), 0, 1))){ return true; } } return false; } /** * Show the log messages for a set of path with XML * * @param path string * @return log message string */ static public function getLog($path) { $command = "svn log $path --xml"; $output = SvnPeer::runCmd($command); return implode('', $output); } static public function getPathRevision($path) { $command = "svn info $path --xml"; $output = SvnPeer::runCmd($command); $string = implode('', $output); $xml = new SimpleXMLElement($string); foreach ($xml->entry[0]->attributes() as $key=>$value){ if ('revision' == $key) { return $value; } } } static public function getHeadRevision($path) { $command = "cd $path && svn up"; $output = SvnPeer::runCmd($command); $output = implode('<br>', $output); preg_match_all("/[0-9]+/", $output, $ret); if (!$ret[0][0]){ return "<br>" . $command . "<br>" . $output; } return $ret[0][0]; } /** * Run a cmd and return result * * @param string command line * @param boolen true need add the svn authentication * @return array the contents of the output that svn execute */ static protected function runCmd($command) { $authCommand = ' --username ' . SVN_USERNAME . ' --password ' . SVN_PASSWORD . ' --no-auth-cache --non-interactive --config-dir '.SVN_CONFIG_DIR.'.subversion'; exec($command . $authCommand . " 2>&1", $output); return $output; } } |