最近在写一个页面,用jquery ajax来实现判断,刚写好测试完全没有问题,过了两天发现出现问题,判断不成了。后来发现所有alert出来的返回值前面都会加若干换行和空格。(至今不明白,同一台电脑,同样的环境,为什么出现这样的问题)
后来在网上发现也有人遇到了相同的问题。无论是jquery $.ajax $.get $.post 在或者是原声的XMLHttpRequest方法都存在这种问题,这样调用的时候和判断的时候,有时候会出错。看例子
ajax代码:
$.get('ajax.php',{'name':name},function(data){
alert(data);
})
ajax.php
<?php
$username = $_GET['name'];
echo $username;
?>
明显name为google的字符串前面有换行或空格,这样严重的影响了程序的稳健性,我都遇到出现了问题,下面程序的判断都不成立。因此我们需要用正则表达式的方法来去除,因此我们可以这样写
$.get('ajax.php',{'name':name},function(data){
newData=data.replace(/\s/g,'');
alert(newData);
})
ajax.php不用变
然后就没有换行空格了。
我在网上看到的都是用
newData=data.replace(/rn/g,'');
但我发现这个正则对我的有问题,前面只减少了一部分空白字符,因此我判断空白字符里应该有除了换行回车外的其余空白字符,因此选用了\s。
/.../g 是正则表达式的属性, 表示全文匹配, 而不是找到一个就停止
PHP分页有很多方法,今天我们就用一个小例子演示一下这个功能。
$result = "<div page-num\"><ul fn-clear\">";
// 上一页
if ($offset>0) {
$result .= "<li>
<a href=/index.html"".$url.'offset='.($offset-$maxrow)."\">Prev</a>
</li>";
}
$pages = $allPageNums; //总页数
$page = $curPage; //当前页数
$page_len = 9;
$page_len = ($page_len%2)?$page_len:$pagelen+1;//页码个数
$pageoffset = ($page_len-1)/2;//页码个数左右偏移量
if($pages>$page_len){
//如果当前页小于等于左偏移
if($page<=$pageoffset){
$init=1;
$max_p = $page_len;
}else{//如果当前页大于左偏移
//如果当前页码右偏移超出最大分页数
if($page+$pageoffset>=$pages+1){
$init = $pages-$page_len+1;
$max_p = $pages;
}else{
//左右偏移都存在时的计算
$init = $page-$pageoffset;
$max_p = $page+$pageoffset;
}
}
} else {
$init = 1;
$max_p = $pages;
}
for($i=$init; $i<=$max_p; $i++) {
if ( $i == $curPage ) {
$result .= "<li on\"><a href=/index.html"".$url.'offset='.($i*$maxrow)."\" >$i</a></li>";
continue;
}
$result .= "<li><a href=/index.html"".$url.'offset='.(($i-1)*$maxrow)."\">$i</a></li>";
}
// 打印下一页
if ( $allnums > ($offset+$maxrow) ) {
$result .= "<li>
<a href=/index.html"".$url.'offset='.($offset+$maxrow)."\">Next</a>
</li>";
}
尽可能高效的,从一个标准 url 里取出文件的扩展名,再把代码扩展一下就可以得到其它的数据了,比如:目录路径,原理就是使用PHP的explode函数分隔字符串。
例如: http://www.abc.com/abc/de/fg.php?id=1 需要取出 php 或 .php
很简单,直接看代码。
<?php
$url = "http://www.abc.com/abc/de/fg.php?id=1";
//这个是自己写的
function getUrl(/blog_article/$url/index.html) {
$date = explode('?', $url);
$date = basename($date[0]);
$date = explode('.', $date);
return $date[1];
}
var_dump(getUrl(/blog_article/$url/index.html));
//下面两个是网上弄的
function getExt($url){
$arr = parse_url($url);
$file = basename($arr['path']);
$ext = explode(".",$file);
return $ext[1];
}
var_dump(getExt($url));
function getName($url) {
$w_param = pathinfo($url);
$str = $w_param['extension'];
list($type, $vars) = explode('?',$str);
return $type;
}
echo 'start3'.date("Y-m-d H:i:s");
?>