php utf-8编码 正则匹配中文

首先unicode里面 中文区域是0x4e00-0x9fa5
在java或者js这种以unicode编码处理字符串的编程语言中
/^[\u4e00-\u9fa5]+$/就可以判断一个字符串是否全部为中文

那么php中 字符的编码根据页面而定
页面是gbk的 字符编码就是gbk的 utf-8也同理
之前有一个表达式 /^[\x80-\xff]+$/
仅仅可以匹配是否含有非ascll字符
而汉字只是其中一个比较小的区域 不太精确

由于我的页面编码是utf-8的
于是把js的表达式搬到php中来
提示PCRE不支持\u和其他乱七八糟的一大堆东西

后来查资料了解到 php的正则有一种叫做字符组的东西
\x{...}表示
于是把表达式改成/^[\x{4e00}-\x{9fa5}]+$/
又提示\x表达式后的数字太大

又查了资料 了解到可以使用修正模式”u” 让程序把后面当成unicode字符处理
于是改成了/^[\x{4e00}-\x{9fa5}]+$/u 测试成功

所以php下正则匹配中文的表达式是 /^[\x{4e00}-\x{9fa5}]+$/u
这个仅适用于utf-8编码

php取到的时间总是差8小时的解决方法

从php5.1开始,在设置文件”php.ini”里面有一项叫做date.timezone,可以设置服务器所在的时区。刚安装的php此项应该是注释掉的,这种情况下使用的是格林尼治标准时间,也就是+-0的时区。

我们可以把这个配置改掉,即去掉前面的分号,在后面的等号之后加上”PRC”,比如”date.timezone=PRC”,就可以纠正过来。其他备选的值有”Asia/Chongqing”、”Asia/Shanghai”、”Asia/Urumqi”、”Asia/Macao”、”Asia/Hong_Kong”、”Asia/Taipei”、”Asia/Singapore”,或者直接使用”Etc/GMT-8”。

如果遇到了像虚拟主机那种无法修改配置文件的情况,可以在获取时间之前加上一句date_default_timezone_set('PRC');,就解决了。

jquery 读取checkbox

html的checkbox控件 是否选中要看有没有checked属性 有就是选中 无论值是什么

如果有这样一个checkbox

<input id="chk" type="checkbox" checked="checked" />

使用js dom来操作 通过checked属性很容易取到是否选中

document.getElementById('chk').checked = true;
document.getElementById('chk').checked = false;
var checked = document.getElementById('chk').checked;

如果用jquery呢?

更多内容

yfs lab 总结

首先说明,这篇日志是写给F12的同学的,所以其他人可以无视掉了。
本科CSE课程,和研究生CSP课程,在B12、F11、B13都用的是这个作业,F12的作业很可能仍然是这套题目。虽然可能会有一些改动,但是差不多还是这样。(但可以肯定的是到了B14修这门课程的时候课程会有较大的改动,因为B14会和F11一起修这门课)。
这个大作业是抄自MIT分布式计算课程的大作业的。正如有的同学在课程最后的调查中说的那样,“题目都是你抄来的,为什么答案我不能抄呢?”大家还是要注意一下抄袭检测的问题的。简单地说就是抄没关系,但是不要完全照搬,记得改动改动(这个学名叫重构和混淆)。

更多内容

数据结构:一个简单的栈模型

//学习数据结构后的一点心得体会

//stack.h文件:

#pragma once
#ifndef STACK_H
#define STACK_H

#include <stdexcept>
using namespace std;

template<class Entry, size_t Max>
class Stack
{
private:
size_t count;
Entry data[Max];

public:
Stack() {count = 0;}
bool empty() {return count == 0;}
void push(const Entry &e)
{
if(count == Max)throw exception("栈已满。");
data[count] = e;
count++;
}
void pop()
{
if(count == 0)throw exception("栈已空。");
count--;
}
Entry top()
{
if(count == 0)throw exception("栈已空。");
return data[count - 1];
}

};

#endif

//main.cpp文件:

#include "stack.h"

#include <iostream>
using namespace std;

int main()
{
    Stack<int, 100> psgs;
    int n;
    cout << "请输入游客人数:" << endl;
     cin >> n;
    cout << "按顺序输入乘客编号:" << endl;
    for(int i = 0; i < n; i++)
     {
         int item;
         cin >> item;
        psgs.push(item);
    }
    cout << "乘客下车次序是:" << endl;
    while(!psgs.empty())
    {
        cout << psgs.top() << ' ';
        psgs.pop();
    }
    cout << endl;
    system("pause");
    return 0;
}