创建脚本文件 form_login.php
代码如下 | 复制代码 |
<!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=gb2312"/> <title>用户登录</title> <link rel='stylesheet' type='text/css' href='style.css'> <style> #showTime{ width:291px; border:1px solid #ccc; line-height:23px; position:absolute; left:500px; top:48px; text-align:center; } </style> </head> <body> <?php if(isset($_COOKIE['login_now'])){ echo "<div id='showTime'>"; echo '您上次登录的时间为:'.$_COOKIE['login_now']; echo "</div>"; } ?> </div> <div id="login"> <h2> <input id="fnquit" type="button" title="退出登录" /> <a href="#" class="cur" name="Email">Email登录</a> </h2> <ul> <form id="myForm" name="myForm" method="post" action='login_time.php'> <li> <input id="login_type" name="login_type" type="hidden"/> <tt> <label id="log_type" for="email">Email:</label> </tt> <div> <input id="username" name="username" type="text" class="cell" /> </div> </li> <li> <tt> <label for="password">密 码:</label> </tt> <div> <input id="password" name="password" type="password" class="cell" /> </div> </li> <li> <div> <input id="auto_login" name="auto_loginmberme" type="checkbox"/> <label for="auto_login">下次自动登录</label> </div> </li> <li> <div> <input id="sub" type="submit" value=''/><a href="#" target="_blank" >忘记密码?</a> </div> </li> </form> </ul> </div> </body> </html> |
创建脚本文件 login_time.php
代码如下 | 复制代码 |
<?php |
创建脚本文件 login_in.php
代码如下 | 复制代码 |
<?php echo "用户登录时间:".$_COOKIE['login_now']."<br>"; echo "<a href='form_login.php'>注销返回</a>"; ?> |
补充:如果是数据库会更好一些因为cookie如果用户把它清除cookie了就没有下载一次了哦。
清除变量中字符中的空格我们有几种方法,因为很多时候我们使用trim是无法删除了,下面整理了几个方法,大家可参考一下。在PHP里,我们要清除变量当中的空格,先来看下面的这一种方法:
代码如下 | 复制代码 |
$arr = explode(" ",$a); |
另外还有一种方法如下:
代码如下 | 复制代码 |
$str=str_replace(" ","",$str); |
上面的方法只能处理英文空格的情况.
下面的方法可以处理中文只的空格,不过有个情况是如果页面指定了编码的话会出现乱码
代码如下 | 复制代码 |
$str=str_replace(chr(32),"",$str); |
对于页面为UTF-8是,中文空格提交后变成了chr(227),原应为chr(161)
后面测试了使用trim(), ltrim(), rtrim()函数也可以达到我们要的效果
下面将介绍trim()系统函数的语法和使用:
string trim(string $str [, string $charlist])
trim()函数对输入的字符串进行去除开始位置和结束位置的空格(其实不只是空格)。
如果不设置第二个参数,trim()函数将会去除以下字符:
” ” : 空格;
“\t”: 制表符;
“\n”: 换行符;
“\r”: 回车符;
“\0″: 空字符;
“\x0B”: 垂直制表符;
如果设置第二个参数,trim()函数将只去除第二个参数中的字符集,而不会再去除上面默认的字符集。
代码如下 | 复制代码 |
1 <?php 2 $str = " hello world "; 3 $str_trim = trim($str); 4 echo "$str<br />$str_trim"; 5 ?> 看一下输出结果: hello world hello world |
怎么是一样的呢?第一行的空格怎么不见了。呵呵。我们在看一下网页的HTML代码吧:
hello world hello world
空格出现了吧!空格不见是因为浏览器显示时自动进行不显示多除的空格。
代码如下 | 复制代码 |
1 <?php 2 $str = "Left hello world Right "; 3 $str_trim = trim($str,"eftL"); 4 echo "$str<br />$str_trim"; 5 ?> 输出结果为: Left hello world Right hello world Right |
我们将左则和eftL字符相关的都去除了,你可能注意到了,右侧的Right中的”t”也在第二个参数中,为什么没去除。仔细看一下$str最后一个字符,其实是空格。因为空格(最右侧)没有去除(在HTML中能看见),所以”t”(右侧倒数第二)将不会处理。这同时说明函数第二个参数会覆盖trim()的默认字符集。
最后说一下ltrim()和rtrim()函数:
ltrim()函数只处理字符串的左侧;
rtrim()函数只处理字符串的右侧;
通过正则表达式替换,功能更强
php去除字符串首尾空格(包括全角)
代码如下 | 复制代码 |
<? |
先来看看怎样取得单个汉字的拼音首字母,请看下面这个函数,它支持GBK和UTF8编码:
代码如下 | 复制代码 |
function getfirstchar($s0){ |
以上函数返回单个汉字的拼音首字母。
当需要处理中文字符串时,只需要重新写一个函数,用来取得一串汉字的拼音首字母。
代码如下 | 复制代码 |
function pinyin1($zh){ 上面这个函数就是获取汉字拼音首字母的函数,使用示例: echo pinyin1('这是中文字符串'); |
结果输出:ZSZWZFC
补充在 getfirstchar函数中我们有两种写法
第一种是我们上面用到的例子
代码如下 | 复制代码 |
function getfirstchar($s0){ |
而另一种是我们使用的数字方法了,也比较简单了。
代码如下 | 复制代码 |
function getFirstChar($string) { |
php直接输出json格式
php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该加一句:
代码如下 | 复制代码 |
<?php header('Content-type:text/json'); //这句是重点,它告诉接收数据的对象此页面输出的是json数据; $json={"name":"yovae","password":"12345"}; //虽然这行数据形式上是json格式,如果没有上面那句的话,它是不会被当做json格式的数据被处理的; echo $json; ?> |
例子
JSON 数据格式化函数
将字符串形式的 JSON 数据格式化为缩进形式。通常使用 json_encode 转换出来的 JSON 串没有缩进,有这个方法就爽多了。
这里我默认使用了 tab 缩进,如果要改成空格,替换变量 $indentStr 即可。
代码如下 | 复制代码 |
/** * Indents a flat JSON string to make it more human-readable. * @param string $json The original JSON string to process. * @return string Indented version of the original JSON string. */ function indent ($json) { $result = ''; $pos = 0; $strLen = strlen($json); $indentStr = ''; $newLine = "\n"; $prevChar = ''; $outOfQuotes = true; for ($i=0; $i<=$strLen; $i++) { // Grab the next character in the string. $char = substr($json, $i, 1); // Are we inside a quoted string? if ($char == '"' && $prevChar != '\\') { $outOfQuotes = !$outOfQuotes; // If this character is the end of an element, // output a new line and indent the next line. } else if(($char == '}' || $char == ']') && $outOfQuotes) { $result .= $newLine; $pos --; for ($j=0; $j<$pos; $j++) { $result .= $indentStr; } } // Add the character to the result string. $result .= $char; // If the last character was the beginning of an element, // output a new line and indent the next line. if (($char == ',' || $char == '{' || $char == '[') && $outOfQuotes) { $result .= $newLine; if ($char == '{' || $char == '[') { $pos ++; } for ($j = 0; $j < $pos; $j++) { $result .= $indentStr; } } $prevChar = $char; } return $result; } |
好了这样输出的的json数据库非常漂亮格式化的形式了哦,在这里我就不给例子了哦,大家不防进入参考一下吧。
PHP方法:利用PHP的“_SERVER ”数组“HTTP_USER_AGENT”项,获取该页面的用户代理的信息,来完成这个工作。
代码如下 | 复制代码 |
<?php ?> |
【winows/chrome】 输出结果:
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36
而【ios7/weixin】
下输出结果:
Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B554a MicroMessenger/5.0.3
在字符串中可以看出“MicroMessenger ”为微信浏览器版本,所以可以使用“MicroMessenger”参数,来判断访问来源是否为“微信浏览器”。
代码如下 | 复制代码 |
if(strpos($_SERVER['HTTP_USER_AGENT'],"MicroMessenger ")) { echo "Hello Weixin"; } Javascript方法: function isweixin(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; } |