第一篇:PHP网页开发协会“网络知识交流会”活动总结
PHP网页开发协会“网络知识交流会”活动总结
一﹑活动目的
为了加深同学们对网络知识方面的了解,促进PHP网页开发协会会员内部的交流以及会员的沟通,更为了能给同学们在圣诞节之际提供一个学习与游戏结合的平台,我们特举办了此次的网络知识交流会,为同学们庆祝圣诞节的到来。二﹑活动前期准备
1﹑根据活动需要,外联部与技术部委员对活动进行了精心策划,并将策划稿打印,一份上交学院社团部,协干人手一份。
2﹑技术部以书面形式向系里老师提出教室申请。3﹑宣传部贴出活动海报,系里院里各一份。4﹑组织部通知各个会员具体活动时间与地点。5﹑组织部配置活动使用道具。6﹑所有协干在活动之前布置好会场。三﹑活动基本情况
(一)活动分四个环节:
1、ppt演示
2、娱乐环节
3、贺卡赠送
(二)活动过程:
1、主持人开场白
2、主讲人ppt演示
3、才艺展示环节
4、游戏环节
5、主讲人ppt演示
6、赠送贺卡
四、活动效果
(一)对本次活动的组织者来说,这次的活动不失为一次很好的锻炼与学习的机会,协干在活动进行之前要求对活动进行整体把握与精心的布局,对活动的流程要有清晰的思路,每一个细节都有细致的考虑,在不断的发现问题与解决问题中,协干的能力素质得到了提高,而在实践中学习到的东西是在课本中学不到的,所以这种经历尤为珍贵,这次活动也为以后活动的开展积累了经验。
(二)对协会会员来说,协会提供了一个学习与娱乐相结合的平台。首先,主讲人演示的ppt通俗易懂,是大部分会员都能够接受的;其次,会场的布置插入了圣诞元素,让人感觉轻松愉悦,有节日气氛;再者,活动中穿插了才艺展示与游戏环节,使会员在学习之余得以放松,在娱乐中又能轻松学习。
(三)本次活动由于在圣诞节举办,协会特别为每位会员都准备了精美的贺卡,而赠送贺卡的方式也别出心裁,让会员倍感温馨。
五、存在的问题
1、部分协干积极性不强,做事存在拖拉现象,致使整体办事效率降低。
2、参加活动人员较少,其原因有三:活动时间安排不当;天气较冷;前期宣传力度不够,没充分调动会员参加活动的积极性。
3、活动之前的准备工作不够充分,导致活动的进展有点忙乱。
六、建议
1、组织者考虑问题需更加全面。
2、人员安排应更加到位,组织者要严格要求自己,改掉拖拉的毛病,提高办事效率。
3、举办活动不能心急,要进行充分的准备活动。
4、活动过后组织者要进行反思与总结并应用到下次活动中。
5、下次活动可考虑拉一下赞助以节省活动经费。
总体来说,所有会员在这次活动中都学到了不少东西,在圣诞节的气氛中大家好好的开心了一下,同时也增进了彼此的友谊,会员还表示,以后协会的还要多多举办活动,大家都很期待。
数学系学生分会社团部
怀化学院PHP网页开发协会
2010年12月27日
第二篇:php重要知识点总结(PHP网络开发必背)
PHP网站开发必用知识点总结,函数一览,开发必背
魔术方法
__construct()当实例化一个对象的时候,这个对象的这个方法首先被调用。
__destruct()当删除一个对象或对象操作终止的时候,调用该方法。
__get()当试图读取一个并不存在的属性的时候被调用。
__set()当试图向一个并不存在的属性写入值的时候被调用。
__call()当试图调用一个对象并不存在的方法时,调用该方法。
__toString()当打印一个对象的时候被调用
__clone()当对象被克隆时,被调用
__isset()__unset()__autoload($classname)__sleep()__wakeup()
系统常量
__FILE__ 当前文件名
__LINE__ 当前行数
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__METHOD__ 当前对象的方法名
PHP_OS 当前系统
PHP_VERSION php版本
DIRECTORY_SEPARATOR 根据系统决定目录的分隔符 /
PATH_SEPARATOR 根据系统决定环境变量的目录列表分隔符;:
E_ERROR 1
E_WARNING 2
E_PARSE 4
E_NOTICE 8
M_PI
3.141592
$_SERVER
$_ENV 执行环境提交至脚本的变量
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$_GLOBALS 输出 echo
//Output one or more strings print
//Output a string print_r()//打印关于变量的易于理解的信息。
var_dump()//打印变量的相关信息
var_export()//输出或返回一个变量的字符串表示
printf(“%.1f”,$num)//Output a formatted string
sprintf()//Return a formatted string
编码转换
string mb_convert_encoding(string $str , string $to_encoding [, mixed $from_encoding ])iconv();时间
date_default_timezone_set(“PRC”);date(“Y-m-d H:i:s”);time();date(“Y-m-d H:i:s”,time()+3600)ini_set('date.timezone', 'PRC');msec sec microtime()以秒返回时间戳 explode(' ', microtime())
错误处理
@1/0 error_reporting(E_ALL)显示所有错误
error_reporting(0)trigger_error(“Cannot divide by zero”, E_USER_ERROR);try {
throw new Exception(“执行失败”);} catch(Exception $ex){
echo $ex;}
字符串处理
string trim(“eee ”)trim('ffffe','e')//ltrim rtrim array explode(“.”, “fff.ff.f”)按指定字符切割
string implode(“.”, $array)别名:join
把数组值数据按指定字符连接起来
array str_split(“eeeeeeee”,4)按长度切割字符串
array split(“-”,“fff-ff-f”)按指定字符切割
int strlen('ffffffff')取字符长度
string substr(string $string , int $start [, int $length ])
substr($a,-2, 2)截取字符
int substr_count($text, 'is')字符串出现的次数 string strstr($text, 'h')第一次出现h后的字符串
//别名:strchr int strpos($text, 'h')第一次出现h的位置
strrpos();最后一次出现h的位置
str_replace('a', 'ttt', $t)把$t里的'a'替换为'ttt'
strtr($t,'is','ppp')把$t中'is'替换成'ppp'
strtr(“hi all, I said hello”, array(“hello” => “hi”))把'hello'转换成'hi' string md5_file('1.txt',false)文件数据md5加密
int strcmp(string str1, string str2)字符串比较
int strcasecmp(string str1, string str2)忽略大小写
string str_pad($i, 10, “-=”, STR_PAD_LEFT)在原字符左边补'-=',直到新字符串长度为10
STR_PAD_RIGHT
STR_PAD_BOTH string str_repeat('1', 5)重复5个1
void parse_str('id=11');echo $id;将字串符解析为变量
array preg_grep(“/^(d+)?.d+$/”, array(11.2,11,11.2))匹配数据
array preg_split(“/[s,]+/”, “hypertext language,programming”);按指定的字符切割
array pathinfo(string path [, int options])返回文件路径的信息
string basename(string path [, string suffix])返回路径中的文件名部分
string dirname(string path)$_SERVER[PHP_SELF] 返回路径中的目录部分
string nl2br(“foo isn'tn bar”)“foo isn't
bar” 把换行转成
string chr(int ascii)
* mixed str_word_count(string string [, int format [, string charlist]])string str_shuffle('abc')打乱字符串顺序
string strrev($str)*
翻转一个字符串
string strtolower($str)*
将字符串 $str 的字符全部转换为小写的string strtoupper($str)*
将字符串 $str 的字符全部转换为大写的string ucfirst($str)
*
将字符串 $str 的第一个单词的首字母变为大写。
string ucwords($str)
*
将字符串 $str 的每个单词的首字母变为大写。
string addslashes(“I'm”)I'm 使用反斜线引用字符串 这些字符是单引号(')、双引号(“)、反斜线()与 NUL(NULL 字符)
string stripcslashes(”I'm“)I'm 将用addslashes()函数处理后的字符串返回原样
strip_tags(”
tt
“, '')去除html、xml、php标记,第二个参数用来保留标记
string urlencode(string str)string urldecode(string str)string htmlspecialchars(”Test“, ENT_QUOTES)转换特殊字符为HTML字符编码
ENT_COMPAT –对双引号进行编码,不对单引号进行编码
ENT_QUOTES –对单引号和双引号进行编码
ENT_NOQUOTES –不对单引号或双引号进行编码
string htmlentities('
ff
', ENT_QUOTES)转换特殊字符为HTML字符编码,中文会转成乱码数组处理
int count(mixed var [, int mode])别名:sizeof()取数组长度
string implode(”.“, $array)别名:join
把数组值数据按指定字符连接起来
array explode(”.“, ”fff.ff.f“)按指定字符切割
array range(0, 6, 2)返回数组 array(0,2,4,6)第一个参数为起使数,第二个参数为结束数,第三个参数为数据增加步长
int array_push($a, ”3“, 1)把'3'、'1'压入$a,将一个或多个单元压入数组的末尾(入栈),第二个参数开始就是压入的数据
void unset(mixed var [, mixed var [,...]])array array_pad($a, 5, 's')用's'将数组填补到指定长度
bool shuffle(array $array)将数组打乱
mixed array_rand(array input [, int num_req])从数组中随机取出一个或多个单元的索引或键名
array array_count_values(array input)统计数组中所有的值出现的次数
array array_combine(array keys, array values)创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
bool array_key_exists(mixed key, array search)检查给定的键名或索引是否存在于数组中
mixed array_search(mixed needle, array haystack [, bool strict])在数组中搜索给定的值,如果成功则返回相应的键名
bool is_array(mixed var)bool in_array(mixed needle, array haystack [, bool strict])检查数组中是否存在某个值
number array_sum(array array)计算数组中所有值的和
array array_unique(array array)移除数组中重复的值
mixed reset(array &array)将数组的内部指针指向第一个单元
mixed current(array &array)mixed next(array &array)mixed prev(array &array)mixed end(array &array)mixed key(array &array)array array_keys(array input [, mixed search_value [, bool strict]])返回数组中所有的键名
array array_values(array input)返回数组中所有的值
bool print_r(mixed expression [, bool return])void var_dump(mixed expression [, mixed expression [,...]])int array_unshift(array &array, mixed var [, mixed...])在数组开头插入一个或多个单元
mixed array_shift(array &array)将数组开头的单元移出数组
mixed array_pop(array &array)将数组最后一个单元弹出(出栈)
array array_splice(array $input, int offset [, int length [, array replacement]])把数组中的一部分去掉并用其它值取代
array array_merge(array array1 [, array array2 [, array...]])合并一个或多个数组
array array_flip(array trans)交换数组中的键和值
int extract(array var_array [, int extract_type [, string prefix]])从数组中将变量导入到当前的符号表
array compact(mixed varname [, mixed...])建立一个数组,包括变量名和它们的值
bool sort(array &array [, int sort_flags])从最低到最高重新安排
bool natsort($a)用“自然排序”算法对数组排序
bool rsort(array &array [, int sort_flags])对数组进行逆向排序(最高到最低)
bool asort(array &array [, int sort_flags])对数组进行排序并保持索引关系
bool arsort(array &array [, int sort_flags])对数组进行逆向排序并保持索引关系
bool ksort(array &array [, int sort_flags])对数组按照键名排序
bool krsort(array &array [, int sort_flags])对数组按照键名逆向排序
array array_filter(array input [, callback callback])用回调函数过滤数组中的单元
bool array_walk(array &array, callback funcname [, mixed userdata])对数组中的每个成员应用用户函数
array array_map(callback callback, array arr1 [, array...])将回调函数作用到给定数组的单元上
array array_fill(int start_index, int num, mixed value)用给定的值填充数组
array_fill(5, 3, 'a')-->array(5=>'a',6=>'a',7=>'a')array array_chunk(array input, int size [, bool preserve_keys])将一个数组分割成多个
其他
isset()变量是否存在
boolean empty()检查变量是否存在,并判断值是否为非空或非0
void unset()销毁变量
header('Content-Type: text/html;charset=utf-8');method_exists($obj, $method)判断对象的方法是否可用
file_exists($file)判断文件是否存在function_exists();class_exists($class_name);
gettype();获取数据类型
set_magic_quotes_runtime()0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,保护系统和数据库的安全
ini_set();安全
function strReplace($str){
$strResult = $str;
if(!get_magic_quotes_gpc())//判断设置是否开启
{
$strResult = addslashes($strResult);//转换sql语句特殊字符
}
return $strResult;} function quotes($content){
//如果magic_quotes_gpc=Off,那么就开始处理
if(!get_magic_quotes_gpc())
{
//判断$content是否为数组
if(is_array($content))
{
//如果$content是数组,那么就处理它的每一个单无
foreach($content as $key=>$value)
{
$content[$key] = addslashes($value);
}
}
else
{
//如果$content不是数组,那么就仅处理一次
addslashes($content);
}
}
//返回$content
return $content;}
smarty 模板引擎将不分析
function t(){
}
读取配置文件
引入文件
$trusted_dir 指定目录下的文件
捕获模板输出的数据
fffffffff
循环
<{section name=loop loop=$News_IN}>
<{$News_IN[loop].NewsID}>
<{/section}>
<{foreach from=$newsArray item=newsID key=k}>
新闻编号:<{$newsID.newsID}>
新闻内容:<{$newsID.newsTitle}>
<{/foreach}> 判断
1111
22222222
时间
{$smarty.now|date_format:”%Y-%m-%d %H:%M:%S“}
%Y年%m月%d日 乱码
修改插件:plugins/modifier.date_format.php
$format = mb_convert_encoding($format,'gbk','utf-8');
return mb_convert_encoding(strftime($format, $timestamp),'utf-8','gbk');
局部不缓存
html:
php:
$smarty->register_block('cacheless', 'smarty_block_dynamic', false);//true:缓存,false:不缓存
function smarty_block_dynamic($param, $content, &$smarty)
{
return $content;
}
php:
function insert_kk()//方法名前必须有”insert“
{
return date('Y-m-d H:i:s');
}
html:
自定义方法
注册方法
php
$smarty->register_function('test1', 'test');
function test($p)
{
return 'ffffffffff';
}
html:
-----------------
方法自定义
插件文件方式定义方法
function.test.php 文件存在plugins目录下,smarty_function_test($params, &$smarty)
function smarty_function_test($params, &$smarty)
{
return 'fff';
}
html调用:
---------------------
插入方法
插件文件:insert.kk.php文件存于plugins目录下
function smarty_insert_kk()
{
return date('Y-m-d H:i:s');
}
php:
function insert_kk()//方法名前必须有”insert“
{
return date('Y-m-d H:i:s');
}
html:
------------------
管道符自定义方法
方法名:
插件文件方式定义方法
modifier.test.php 文件存在于plugins目录下,方法名: function smarty_modifier_test($str, $str2)
function smarty_modifier_test($str, $str2)
{
return $str.$str2;
}
html调用:
php:
function eee($a)
{
return 'ffffffffffffff';
}
html:
if语句
eq相等,ne、neq不相等,gt大于
gte、ge大于等于,lte、le 小于等于,not非,mod求模。
is [not] div by是否能被某数整除,is [not] even是否为偶数,$a is [not] even by $b 即($a / $b)% 2 == 0
is [not] odd是否为奇
$a is not odd by $b即($a / $b)% 2!= 0
XML
sax
xml:
<--?xml version=”1.0“ encoding=”utf-8“?-->
O'Reilly
O'Reilly
出版者
php:
$g_books = array();
$g_elem = null;
function startElement($parser, $name, $attrs)
{
global $g_books, $g_elem;
if($name == 'BOOK')$g_books []= array();
$g_elem = $name;
}
function endElement($parser, $name)
{
global $g_elem;
$g_elem = null;
}
function textData($parser, $text)
{
global $g_books, $g_elem;
if($g_elem == 'AUTHOR' ||
$g_elem == 'PUBLISHER' ||
$g_elem == 'TITLE')
{
$g_books[ count($g_books)”.$book['AUTHOR'].“$author-$publisher
”;
}
php生成:
$books = array();
$books [] = array('title' => 'PHP Hacks','author' => 'Jack Herrington','publisher' => “O'Reilly”);
$books [] = array('title' => 'Podcasting Hacks','author' => 'Jack Herrington','publisher' => “O'Reilly”);
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement(“books”);
$doc->appendChild($r);
foreach($books as $book)
{
$b = $doc->createElement(“book”);
$author = $doc->createElement(“author”);
$author->appendChild($doc->createTextNode($book['author']));
$b->appendChild($author);
$title = $doc->createElement(“title”);
$title->appendChild($doc->createTextNode($book['title']));
$b->appendChild($title);
$publisher = $doc->createElement(“publisher”);
$publisher->appendChild($doc->createTextNode($book['publisher']));
$b->appendChild($publisher);
$r->appendChild($b);
}
echo $doc->saveXML();
echo $doc->save('222.xml');
SimpleXML
xml:
O'Reilly
php:
$xml = new SimpleXMLElement('1.xml', NULL, TRUE);
echo $xml->book[0]->author.“___”.$xml->book[0]->title.“___”.$xml->book[0]->publisher;正则
ereg系列的正则表达式不需要定届符,preg系列的才需要,并且定界符可以自己选择,只有前后一对就行,比如我们一般使用/符号,但是如果里面有/需要匹配那么就需要使用/来表示,当/需要出现多次的时候,这样就不方便,我们就可以使用其他的定界符,比如|
正则特殊字符
.+ * ? [ ^ ] $(){ } =!< > | :
由原子(普通字符,如英文字符)、元字符(有特殊功用的字符)
模式修正字符
一个正则表达式中,至少包含一个原子
全部符号解释
将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 “n”。'n' 匹配一个换行符。序列 '' 匹配 “" 而 ”(“ 则匹配 ”(“。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 'n' 或 'r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 'n' 或 'r' 之前的位置。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 ”z“ 以及 ”zoo“。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 ”zo“ 以及 ”zoo“,但不能匹配 ”z“。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。例如,”do(es)?“ 可以匹配 ”do“ 或 ”does“ 中的”do“。? 等价于 {0,1}。
{n} n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 ”Bob“ 中的 'o',但是能匹配 ”food“ 中的两个 o。
{n,} n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 ”Bob“ 中的 'o',但能匹配 ”foooood“ 中的所有 o。'o{1,}' 等价于 'o+'。'o{0,}' 则等价于 'o*'。
{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,”o{1,3}“ 将匹配 ”fooooood“ 中的前三个 o。'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。
? 当该字符紧跟在任何一个其他限制符(*, +, ?, {n}, {n,}, {n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串 ”oooo“,'o+?' 将匹配单个 ”o“,而 'o+' 将匹配所有 'o'。
.匹配除 ”n“ 之外的任何单个字符。要匹配包括 'n' 在内的任何字符,请使用象 '[.n]' 的模式。
(pattern)匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到,在VBScript 中使用 SubMatches 集合,在JScript 中则使用 $0„$9 属性。要匹配圆括号字符,请使用 '(' 或 ')'。
(?:pattern)匹配 pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。这在使用 ”或“ 字符(|)来组合一个模式的各个部分是很有用。例如,'industr(?:y|ies)就是一个比 'industry|industries' 更简略的表达式。
(?=pattern)正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,'Windows(?=95|98|NT|2000)' 能匹配 ”Windows 2000“ 中的 ”Windows“,但不能匹配 ”Windows 3.1“ 中的 ”Windows“。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
(?!pattern)负向预查,在任何不匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如'Windows(?!95|98|NT|2000)' 能匹配 ”Windows 3.1“ 中的 ”Windows“,但不能匹配 ”Windows 2000“ 中的 ”Windows“。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始
x|y 匹配 x 或 y。例如,'z|food' 能匹配 ”z“ 或 ”food“。'(z|f)ood' 则匹配 ”zood“ 或 ”food“。
[xyz] 字符集合。匹配所包含的任意一个字符。例如,'[abc]' 可以匹配 ”plain“ 中的 'a'。
[^xyz] 负值字符集合。匹配未包含的任意字符。例如,'[^abc]' 可以匹配 ”plain“ 中的'p'。
[a-z] 字符范围。匹配指定范围内的任意字符。例如,'[a-z]' 可以匹配 'a' 到 'z' 范围内的任意小写字母字符。
[^a-z] 负值字符范围。匹配任何不在指定范围内的任意字符。例如,'[^a-z]' 可以匹配任何不在 'a' 到 'z' 范围内的任意字符。
b 匹配一个单词边界,也就是指单词和空格间的位置。例如,'erb' 可以匹配”never“ 中的 'er',但不能匹配 ”verb“ 中的 'er'。
B 匹配非单词边界。'erB' 能匹配 ”verb“ 中的 'er',但不能匹配 ”never“ 中的 'er'。
cx 匹配由 x 指明的控制字符。例如,cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
d 匹配一个数字字符。等价于 [0-9]。
D 匹配一个非数字字符。等价于 [^0-9]。
f 匹配一个换页符。等价于 x0c 和 cL。
n 匹配一个换行符。等价于 x0a 和 cJ。
r 匹配一个回车符。等价于 x0d 和 cM。
s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ fnrtv]。
S 匹配任何非空白字符。等价于 [^ fnrtv]。
t 匹配一个制表符。等价于 x09 和 cI。
v 匹配一个垂直制表符。等价于 x0b 和 cK。
w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,'x41' 匹配 ”A“。'x041' 则等价于 'x04' & ”1“。正则表达式中可以使用 ASCII 编码。.num 匹配 num,其中 num 是一个正整数。对所获取的匹配的引用。例如,'(.)1' 匹配两个连续的相同字符。
n 标识一个八进制转义值或一个向后引用。如果 n 之前至少 n 个获取的子表达式,则 n 为向后引用。否则,如果 n 为八进制数字(0-7),则 n 为一个八进制转义值。
nm 标识一个八进制转义值或一个向后引用。如果 nm 之前至少有 nm 个获得子表达式,则 nm 为向后引用。如果 nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的向后引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字(0-7),则 nm 将匹配八进制转义值 nm。
nml 如果 n 为八进制数字(0-3),且 m 和 l 均为八进制数字(0-7),则匹配八进制转义值 nml。
un 匹配 n,其中 n 是一个用四个十六进制数字表示的 Unicode 字符。例如,u00A9 匹配版权符号(?)。
例子
/b([a-z]+)b/i 单词数量
/(w+)://([^/:]+)(:d*)?([^# ]*)/ 将一个URL解析为协议、域、端口及相对路径
/^(?:Chapter|Section)[1-9][0-9]{0,1}$/ 定位章节的位置
/[-a-z]/ A至z共26个字母再加一个-号。
/terb/ 可匹配chapter,而不能terminal
/Bapt/ 可匹配chapter,而不能aptitude
/Windows(?=95 |98 |NT)/ 可匹配Windows95或Windows98或WindowsNT,当找到一个匹配后,从Windows后面开始进行下一次的检索匹配。
^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$ Email 合法格式检查
^[0-9]+$ 纯数据检查
^[0-9a-z]{1}[0-9a-z-]{0,19}$ 用户名检查,字母和数字开始,只能含字母、数字、横杠
模式修正符
i 忽略大小写
s 如果设定了此修正符,模式中的圆点元字符(.)匹配所有的字符,包括换行符
e 只用在preg_replace(),在替换字符串中对逆向引用作正常的替换,将其作为 PHP 代码求值,并用其结果来替换所搜索的字符串。
如:
$p = '/[colorFont](.+?)[/colorFont]/ie';
$t = '”“';
ecoh preg_replace($p,$t,$string);
这里必须加上e修正,才能将匹配到的内容用urlencode处理
U 贪婪模式,最大限度匹配
如:/a[w]+?e/U匹配abceadeddd中的abceade而不是abce,如果不加U修正,则匹配abce
A 强制从字符串开头匹配,即自动在模式开头加上^
m 当设定了此修正符,“行起始” ^ 和“行结束” $ 除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。如果目标字符串中没有“n”字符或者模式中没有 ^ 或 $,则设定此修正符没有任何效果。
D 模式中的美元元字符仅匹配目标字符串的结尾。没有此选项时,如果最后一个字符是换行符的话,美元符号也会匹配此字符之前。如果设定了 m 修正符则忽略此选项
例子
匹配中文
preg_match_all('/[^x00-x80]+/', '中华s人s民', $a)
如果你的文件是gb2312的,用/[xa0-xff]{2}/
如果是utf8的,用/[xe0-xef][x80-xbf]{2}/
匹配邮箱地址
preg_match('/w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/', 'shao@gmail.com')
替换空白字符
$s = preg_replace('/[sv]+/','',' sss sdd ss ');
替换
$string = ”April 15, 2003“;
$pattern = ”/(w+)(d+),(d+)/i“;
$replacement = ”${1}1,${3}1-$2“;
echo preg_replace($pattern, $replacement, $string);
匹配帐号是否合法(字母开头,允许5-6字节,允许字母数字下划线)
preg_match('/^[a-zA-Z][a-zA-Z0-9_]{4,5}$/', 'a011a')
匹配数字
/^-d*$/ 匹配负整数
/^-?d*$/ 匹配整数
匹配浮点数
preg_match(”/^-?(d*.d*|0.d*|0?.0+|0)$/“, ”11“)
匹配电话号码
preg_match(”/^(0[0-9]{2,3}-)?([2-9][0-9]{6,7}){1,1}(-[0-9]{1,4}){0,1}$/“,”0511-22345678-11“)
匹配手机号码
preg_match(”/^1(3|5)d{9}$/“,”***“)
文件处理
文件属性
file_exists('1.php')文件或目录是否存在 filesize()取得文件大小
is_readable()判断给定文件名是否可读
is_writable()判断给定文件名是否可写
is_executable()判断给定文件名是否可执行
filectime()获取文件的创造时间
filemtime()获取文件的修改时间
fileatime()获取文件的访问时间
stat()获取文件大部分属性值 解析目录
basename()返回路径中的文件名部分
dirname()返回目录
pathinfo()返回目录名、基本名和扩展名的关联数组 遍历目录
opendir()打开指定目录
readdir()关闭指定目录
closedir()关闭指定目录
rewinddir()倒回目录句柄
$dir_handle=opendir('.');
while($file=readdir($dir_handle))
{
echo filesize($file).'___'.$file.'
';
}
closedir($dir_handle);建立和删除目录
mkdir()创建目录
rmdir()删除空目录 文件操作
fopen()fclose()fwrite()写入文件
fputs()fwrite的别名
file_put_contents($文件名,$内容)把内容存成文件
file_get_contents()从文件读出内容 文件读取
fread()stream_get_contents()fgets()从文件指针中读取一行
feof()测试文件指针是否到了文件结束的位置
fgetc()从文件指针中读取字符
file()readfile()读入一个文件并写入到输出缓冲
ftell()返回文件指针的当前位置
fseek()移动文件指针到指定的位置
rewind()移动文件指针到文件的开头
flock()文件锁定
copy()复制文件
unlink()删除文件
ftruncate()将文件截断到指定的长度
rename()重命名文件或目录
文件控制
chgrp
chmod(string $filename , int $mode)
chown 保存读取文件
-----------把内容存成文件
$cache_file = fopen('f:1.txt', 'w+');
fwrite($cache_file, $t);
-----------把内容存成文件
$s = ”内容“;
file_put_contents('f:/2.txt',$s);
-----------把文件内容读成字符串
$s = file_get_contents('f:/2.txt');
echo $s;
-----------把文件内容按行读成字符串
$handle = @fopen(”f:/2.txt“, ”r“);
if($handle)
{
while(!feof($handle))
{
$buffer = fgets($handle, 4096);
echo $buffer.'
';
}
fclose($handle);
}
----------
session/cookie setcookie(”MyCookie[foo]“, 'Testing 1', time()+3600)session_start()ini_set('session.cookie_lifetime',0);session对应cookie存活时间
ini_set('session.save_path', 'dir');ini_set('session.save_path', '2;session');session分两级存放
ini_set('session.name','SNS');客户端禁用Cookie
session.use_trans_sid = 1 开启url传递sessionId php.ini session销毁
mysql $link = mysql_connect('localhost','root','root')or die(mysql_errno());mysql_select_db('test')or die(mysql_errno());mysql_query('SET NAMES gbk');$sql = ”SELECT * FROM test LIMIT 0,20“;$result = mysql_query($sql)or die(mysql_errno());while($msg = mysql_fetch_array($result)){
print_r($msg);} mysql_free_result($result);mysql_close($link);
mysqli 查询
过程
$db_host=”localhost“;
//连接的服务器地址
$db_user=”root“;
//连接数据库的用户名
$db_psw=”root“;
//连接数据库的密码
$db_name=”test“;//连接的数据库名称
$mysqli=mysqli_connect($db_host,$db_user,$db_psw,$db_name);
mysqli_query($mysqli,'SET NAMES utf8');
$query=”select * from users“;
$result=mysqli_query($mysqli,$query);
while($row =mysqli_fetch_array($result))//循环输出结果集中的记录
{
echo($row['id']).”
“;
echo($row['username']).”
“;
echo($row['password']).”
“;
echo ”
“;
}
mysqli_free_result($result);
mysqli_close($mysqli);
对象
$db_host=”localhost“;
//连接的服务器地址
$db_user=”root“;
//连接数据库的用户名
$db_psw=”root“;
//连接数据库的密码
$db_name=”test“;//连接的数据库名称
$mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);
$mysqli->query('SET NAMES utf8');
$query=”select * from users“;
$result=$mysqli->query($query);
if($result)
{
if($result->num_rows>0)//判断结果集中行的数目是否大于0
{
while($row =$result->fetch_array())//循环输出结果集中的记录
{
echo($row[0]).”
“;
echo($row[1]).”
“;
echo($row[2]).”
“;
echo ”
“;
} } } else { echo ”查询失败“;} $result->free();$mysqli->close();增、删、改
$mysqli=new mysqli(”localhost“,”root“,”root“,”sunyang“);//实例化mysqli $query=”delete from employee where emp_id=2“;$result=$mysqli->query($query);if($result){
echo ”删除操作执行成功“;}else{
echo ”删除操作执行失败“;} $mysqli->close();绑定结果
$mysqli=new mysqli(”localhost“,”root“,”root“,”test“);
//实例化mysqli $query=”select * from users“;$result=$mysqli->prepare($query);
//进行预准备语句查询
$result->execute();
//执行预准备语句
$result->bind_result($id,$username,$password);
//绑定结果
while($result->fetch()){
echo $id.'_';
echo $username.'_';
echo $password;
echo ”
“;} $result->close();
//关闭预准备语句
$mysqli->close();
//关闭连接 绑定参数
$mysqli=new mysqli(”localhost“,”root“,”root“,”test“);
//实例化mysqli $query=”insert into users(id, username, password)
values('',?,?)“;
$result=$mysqli->prepare($query);
$result->bind_param(”ss“,$username,$password);
//绑定参数 I:integer D:double S:string B:blob
$username='sy0807';
$password='employee7';
$result->execute();
//执行预准备语句
$result->close();
$mysqli->close();
绑定参数、绑定结果
$mysqli=new mysqli(”localhost“,”root“,”root“,”test“);
//实例化mysqli
$query=”select * from users where id < ?“;
$result=$mysqli->prepare($query);
$result->bind_param(”i“,$id);
//绑定参数
$id=10;
$result->execute();
$result->bind_result($id,$username,$password);
//绑定结果
while($result->fetch()){
echo $id.”_“;
echo $username.”_“;
echo $password;
echo ”
“;
}
$result->close();
$mysqli->close();
多条查询语句
$mysqli=new mysqli(”localhost“,”root“,”root“,”test“);
//实例化mysqli
$query = ”select id from users;“;
$query.= ”select id from test “;
if($mysqli->multi_query($query)){
//执行多个查询
do {
if($result = $mysqli->store_result()){
while($row = $result->fetch_row()){
echo $row[0];
echo ”
“;
}
$result->close();
}
if($mysqli->more_results()){
echo(”-----------------
“);
//连个查询之间的分割线
}
} while($mysqli->next_result());
}
$mysqli->close();//关闭连接
pdo 查询
$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$sql=”SELECT * FROM users“;
$result = $db->query($sql);
foreach($result as $row)
{
var_dump($row);
}
$db = null;增、删、改、事务开启
try
{
$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$db->beginTransaction();
$a = $db->exec(”insert into users(id, username, password)values('', 'Joe', 'Bloggs')“);
if($a == false)
{
throw new Exception(”sql1执行失败“);
}
$b = $db->exec(”insert into users(id, username, password,kkk)values('', 'Joe', 'Bloggs')“);
if($b == false)
{
throw new Exception(”sql2执行失败“);
}
$db->commit();
$db = null;
}
catch(Exception $ex)
{
echo $ex;
$db->rollback();
} 缓存
Memcache
.下载memcached,http://', 'w+');
fwrite($cache_file, $content);
页面静态化-------
ob_start();
$static_file = '1.html';//静态页面
$php_file = basename(__FILE__);//当前动态页面
if(!file_exists($static_file)||
((filemtime($static_file)+10)< time())|| //缓存固定时间
filemtime($php_file)> filemtime($static_file))//源文件已修改
{
echo '静态页面示例';
echo 'erer';
$c = ob_get_contents();
ob_clean();
file_put_contents($static_file, $c);
}
$s = file_get_contents($static_file);
echo $s;
------------------
ob_implicit_flush($p)$p:0:关闭 1:开启(每次输出后都自动刷新,而不再需要去调用flush())
ob_list_handlers 列出所有使用的输出句柄
output_add_rewrite_var
output_add_rewrite_var('var', 'value');
echo 'link';
输出:link
output_reset_rewrite_vars
output_add_rewrite_var('var', 'value');
ob_flush();
output_reset_rewrite_vars();
伪静态
首先:
必须要空间支持 Rewrite 以及对站点目录中有.htaccess 的文件解析,才有效.如何让空间支持Rewrite 和.htaccess 的文件解析呢 往下看
第一步:要找到apache安装目录下的httpd.cof文件,在里面找到
Options FollowSymLinks
AllowOverride none 把none改all, 第二步:找到以下内容:
#LoadModule rewrite_module modules/mod_rewrite.so 改为
LoadModule rewrite_module modules/mod_rewrite.so 第三步:保存重启apache。
ok。
其次是.htaccess的书写规则:
RewriteEngine On
RewriteBase /
#打开允许符号链接
Options FollowSymLinks
RewriteRule smarty/([0-9]+)/([0-9]+)smarty/index.php?id=$1&name=$2
.htaccess加入以下内容
RewriteEngine On RewriteBase / RewriteRule ^(.*)list-id([0-9]+).html$ $1/company/search.php?sectorid2=$2 RewriteRule ^(.*)cominfo-([a-z0-9]+).html$ $1/member/index.php?uid=$2&type=cominfo RewriteRule ^(.*)list-([0-9]+)-([0-9]+).html$ $1/plus/list.php?typeid=$2&PageNo=$3 RewriteCond %{HTTP_HOST} ^[a-z0-9-]+.lujin.com$ RewriteCond %{HTTP_HOST}!^($ $1/company/search.php?sectorid2=$2 这条是把企业库的分类进行伪静态处理
原先假设访问地址为http://
优点:
1、伪静态处理加速搜索引擎收入
2、地址映射到根目录,增加权重,提高排名
序列化
__sleep()__wakeup()-----------------$a = array(”1“=>”a“,”2“=>”b“,”3“=>”c“,”4“=>”d“);$b = serialize($a);/*序列化*/ var_dump($b);$f = unserialize($b);/*解析*/ var_dump($f);---------------------class S {
public $t = 111;
public function t()
{
echo 't function';
} } $s = new S;$t = serialize($s);$e = unserialize($t);echo $e->t();echo $e->t;--------------------class S {
public $id;
public $name;
public function f()
{
echo 'f function';
}
function __sleep()
{
$this->id = uniqid();
return array('id','name');
}
function __wakeup(){
//$this->id = uniqid();} } $s = new S();$s->name = 'name';$e = serialize($s);$t = unserialize($e);echo $t->id.'_',$t->name,' ';echo $t->f();----------------------------class S { public $t = 111;public function t(){
echo 't function';} } $s = new S;$t = serialize($s);$cache_file = fopen('f:/1.txt', 'w+');fwrite($cache_file, $t);/* die;$e = unserialize($t);echo $e->t();echo $e->t;*/ $handle = @fopen(”f:/1.txt“, ”r“);if($handle){ while(!feof($handle)){
$buffer = fgets($handle, 4096);
break;} fclose($handle);} $e = unserialize($buffer);echo $e->t();echo $e->t;----------
ThinkPHP2.0 入口文件配置
define('STRIP_RUNTIME_SPACE', false);生成的~runtime.php文件是否去空白和注释
define('NO_CACHE_RUNTIME', true);不生成核心缓存文件
查询
按照id排序显示前6条记录
$Form = M(”Form“);
$list = $Form->order('id desc')->limit(6)->select();
取得模板显示变量的值
$this->assign('tt', 'vvvvvvvvvvvv');
echo $this->get('tt')
成功失败提示页
if(false!==$Form->add()){
$this->success('数据添加成功!');
}else{
$this->error('数据写入错误');
}
自动验证
array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间)
验证规则:require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字
Model:: MODEL_INSERT 或者1新增数据时候验证
Model:: MODEL_UPDATE 或者2编辑数据时候验证
Model:: MODEL_BOTH 或者3 全部情况下验证(默认)
protected $_validate = array(array('verify','require','验证码必须!'), //默认情况下用正则进行验证
array('name','','帐号名称已经存在!',0,’unique’,1), // 在新增的时候验证name字段是否唯一
array('value',array(1,2,3),'值的范围不正确!',2,’in’), // 当值不为空的时候判断是否在一个范围内
array('repassword','password','确认密码不正确',0,’confirm’), // 验证确认密码是否和密码一致
array('password','checkPwd','密码格式不正确',0,’function’), // 自定义函数验证密码格式);
apache多域名配置
NameVirtualHost *:80 Alias /php/ ”f:/php/“
第三篇:计算机协会计算机知识交流会活动策划书
共青团江西财经大学委员会
计算机协会
计算机知识交流会
策
划
书
江西财经大学计算机协会
二零一四年五月三日
目录一、二、三、1.2.3.四、五、六、七、八、活动目的........................1 活动内容........................1 活动流程........................1 活动准备....................1 活动安排....................2 活动总结....................2 活动人员安排.......................2 活动物料........................2 经费预算........................3 人员安排表....................3 风险规避........................3一、活动目的一个学年的社团生活进入尾声,来到计算机协会的同学们学到了哪些新的知识呢?这次活动的目的就是让每位计算机协会的同学把自己学习到的知识和同学们分享,展示自我的同时,把学习到的知识总结运用,通过交流会的形式和其他同学分享。
二、活动内容
1.活动时间:5月10日(第一期推迟到11号)、5月17日(第二期)2.活动地点:荟庐H315会议室(改为大活D204)
3.活动概要:计算机协会的委员提前准备展示材料,届时按照部门顺序将自己准备好的展示作品(视频、PPT等)在交流会上展示,由各部门部长对选手的展示进行打分评比,评选出优秀作品。
三、活动流程
1.活动准备
活动的前期准备工作分为活动准备、材料准备两部分,其中活动准备有: 1)由各部门部长宣传此次活动,鼓励每个委员参加。
2)第一期交流会由技术宣传部和市场硬件部作为宣讲部门,两个部门需在5月7日前将展示材料做初步整理,并报给钟乘永;第二期交流会由电脑维修部和网络软件部作为宣讲部门,两个部门需在5月14日前将展示材料做初步整理,并报给钟乘永。
3)由钟乘永负责打印横幅两条,内容为“计算机知识交流会”和“计协计算机知识讲坛,学文化,涨知识”,分别张贴在食堂门口和交流会现场,场地的布置由维修部负责。
4)宣传部的任务有,负责制作两张海报,宣传本次的交流会,除此之外,在第二期交流会开始前,制作一些邀请函,邀请一些老师和同学的参加。
5)由钟乘永购买好此次活动的奖品,本次活动将评选优秀作品奖6组,授予“计算机协会优秀委员”奖状和奖杯。
6)由钟乘永负责向信息管理学院申请会议室的使用,并确保麦克风等设备可以正常使用。
7)准备好评分表格,发给部门的部长和副部,由他们进行评分。评分表制作由钟乘永负责并打印。
8)从各部门中挑选四名同学作为交流会的主持人,人员名单在5月7日前报给钟乘永。
除活动准备外,本次活动的材料准备工作非常重要,需要各部门部长副部的合作完成,材料准备工作有:
9)材料准备分为两类,一类是部门精品材料,一类是个人展示材料。展示以小组的方式进行,一到两人一组。每个部门推选出两组精品材料,时间为10分钟左右,其余同学每个人准备个人准备材料,时间为3分钟左右(可包括个人简介和知识交流)。
10)精品材料的准备相对比较重要。在活动开始前由各个部门的部长或者副部对材料进行初步整理,做好初步的审核工作,并且尽量与委员们一起合作出精品的作品。
在所有材料都已核实和准备好后,第一期在5月8日晚上之前发给倪嘉露,第二期在5月15日前发给倪嘉露,由倪嘉露安排顺序并将顺序告知活动主持人。主持人根据讲演顺序做准备,确保交流会流程的流畅进行。主持人安排、节目顺序和现场安排由倪嘉露负责。
活动当天下午三点,参加讲演的同学将自己的展示材料拷贝到H315会议室的电脑上,活动于3:30准时开始。活动由主持人进行主持,按照演讲顺序进行展示,各部门部长和副部对委员的讲演进行打分,而后由钟乘永进行活动总结和表彰。
2.活动安排
1)在活动准备和材料准备好之后,在活动开始后,由钟乘永安排人员对现场活动拍照,并发表到腾讯微博。
2)宣传部安排一名委员对活动进行总结,并撰写活动总结。
3)交流会的主要内容是委员们进行知识交流,另外会长和部长对协会和部门工作进行总结发言。
4)海报制作好后,在周五之前张贴到食堂门口,由宣传部负责。横幅制作好之后,在周五前悬挂一条在食堂门口,由宣传部负责。
5)在每一期的交流会结束后,由刘紫阳收取各部长的打分表,并交由委员对评分情况进行整理,发到钟乘永邮箱。
7)在两期活动结束后将对表现优秀的同学颁发奖励奖品,荣誉证书的颁发将在后期。
3.活动总结
在活动结束后由宣传部委员负责写稿,总结本次活动,并且投稿到学院和学校网站。
活动结束后统计活动的经费,并且对活动的不足之处进行总结改善。
四、活动人员安排
六、经费预算
七、人员安排表
第四篇:网络协会活动总结
大学生社团联合会网络协会
活
动
总
结
黑龙江科技学院鸡西校区
大学生社团联合会
——网络协会
活动总结
为丰富在校大学生的课余生活,展现当代大学生的精神风貌,增强社团的凝聚力。大学生联合会网络协会于三月二十三日下午两点至三月二十六日下午五点之间举行了一次别开生面的电子竞技大赛与计算机技能大赛。大赛主要包含两个大项目:CS1.6团队竟技比赛、计算机技能大赛。
一、活动目的这次活动旨在为大家提供一个学习计算机知识,平等竞技的平台,同时引导大家正确认识电子竞技这项运动,并且在活动中将一些基本的电脑知识灌输给大家。
二、活动之前的准备
1、根据大学生联合会社团的要求,我们网络协会各位负责人对此次活动进行了精心的策划,并形成了书面策划,同时号召全校同学积极参与此活动,这为此次活动成功开展提供了前提保证;
2、提前向教务处申请活动教室,并在活动之前布置好会场,准备好活动的必需物品;3、提前向全体同学通知活动的时间、地点。
三、活动基本情况
(一)活动分为两个大个活动与几个小项目
1、CS1.6 游戏团队竟技比赛、计算机技能比赛
2.1、计算机拆装
2.2、CAD计算机辅助设计
2.3、PS照片处理
2.4、计算机基础知识问答
(二)活动的过程:、CS1.6 游戏比赛以团队模式进行,每组五个成员,自愿结组。
活动规则按国内正规比赛规进行淘汰赛,取成绩最好与第二组。最后由协会负责人颁发相应奖品。、计算机技能比赛以报名人员为准,比赛分两个项目,笔式与上机。
笔试项目要求:参加比赛报名全部人员在相应时间内完成问答。由专业人员对试卷答案给出相应分数。
上机要求:CAD与PS由相关负责人发给参赛人员上机比赛考题,要求参赛者在规定时间内完成。由专业人员对上机内容给出相应分数。
计算机拆装要求:各位比赛人员一定时间内完成计算机的组装。按参赛选手所用时间给予相应分数。
3、最后算出上机和笔试共同成绩作为最后成绩,分别取成绩最好者与第二名。最后由协会负责人颁发相应奖品。
四、活动的效果
1.前期准备充分
“凡事预则立,不预则废”在这次活动中得到了充分体现,正是因为有了详实的考虑、周全的计划和充分的准备,这次活动才有了成功开展的前提。因为活动时间紧,任务重。我们协会在活动前两个周就开始商量具体的活动事项,并且在活动开始之前我们就有了详细的计划及活动部署。
2.宣传工作成功 同学们积极响应
本次活动的宣传方法,在学校公布窗口以海报形式进行宣传并利用晚自习时间对各个班级报名情况进行统计,负责宣传统计的同学非常认真、努力,这次宣传赢得了同学的广泛响应,短短的一天宣传,就有数十名同学积极报名。并且我们成功的邀请到大学生联合会负责人王老师,主席以及其它各个协会会长。拓宽了交流范围,锻炼了组织人员的对外交际能力。
3.分工具体 安排合理
在活动没有开始之前,众会员就已经将活动道具、活动任务合理分配,同时也注意到宣传组织及工作时间的协调。并且得到了社团部的大力支持,在人力和组织上给予了很多的帮助,使这次比赛的组织和分工条理清晰。社团部的支持为比赛的成功做出了巨大的贡献。
4.活动广受好评
在比赛现场,参赛选手及现场观众纷纷表示,这次比赛办得非常有特色,每个同学都在竞技中将自己的水平得到了提高并且学习了相应的计算机知识。并且赢得了一定的荣誉。
五、存在问题及建议
(一)问题、节目之间的衔接不理想;、存在同学缺席的情况;、负责人之间配合缺少默契,事先准备不够充分等缺点。
(二)建议、完善策划书的细节,增强活动的逻辑连接;、开展活动之前发动全体同学的参与积极性,加强同学们集体荣誉感的教育;3、活动之前负责人应加强沟通,做好处理突发事件的准备。
总之,这次主题班会使我们全校同学进一步加深了对大学生活的理解,同时也增进了同学之间的友谊。同时也让大家深深的体会到大学生活的美好,同学们都表示要在这里播下理想的种子,争取在以后的大学学习生活中有所建树。
六、获奖名单
计算机计技能比赛:
拆装机:第一名: XXX
第二名: XXX
CAD: 第一名:X X
第二名:XXX
P S: 第一名:XXX
第二名:XXX
CS1.6 游戏技竟比赛:
第一名:名单
第二名:名单
网络协会
2012年4月18日
第五篇:php开发中常用函数总结
php开发中常用函数总结
1.获取IP2.时间的增加3.检查日期是否合法日期4.时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天5.PHP重定向6.获取访问者浏览器7.获取访问者操作系统8.文件格式类9.php生成excel文档10.时间比较问题11.提取页面和浏览器提交的变量,作用相当于使PHP.INI开了全局变量12.读取文件函数13.写入文件函数14.页面快速转向15.产生随机字符串函数16.截取一定长度的字符串(该函数对GB2312使用有效)17.取得客户端IP地址18.判断邮箱地址19.分页(两个函数配合使用)20.获取新插入数据的ID21.获得当前的脚本网址22.把全角数字转为半角数字23.去除HTML标记24.相对路径转化成绝对路径26.取得所有链接27.HTML表格的每行转为CSV格式数组28.将HTML表格的每行每列转为数组,采集表格数据29.返回字符串中的所有单词 $distinct=true 去除重复30.打印出为本PHP项目做出贡献的人员的清单
function GetIP(){ //获取IP
if($_SERVER[“HTTP_X_FORWARDED_FOR”])
$ip = $_SERVER[“HTTP_X_FORWARDED_FOR”];
else if($_SERVER[“HTTP_CLIENT_IP”])
$ip = $_SERVER[“HTTP_CLIENT_IP”];
else if($_SERVER[“REMOTE_ADDR”])
$ip = $_SERVER[“REMOTE_ADDR”];
else if(getenv(“HTTP_X_FORWARDED_FOR”))
$ip = getenv(“HTTP_X_FORWARDED_FOR”);
else if(getenv(“HTTP_CLIENT_IP”))
$ip = getenv(“HTTP_CLIENT_IP”);
else if(getenv(“REMOTE_ADDR”))
$ip = getenv(“REMOTE_ADDR”);
else
$ip = “Unknown”;
return $ip;}?>{downsource}
$dateArr = explode(“-”, $date);$value[$unit] = $int;return date(“Y-m-d”, mktime(0,0,0, $dateArr[1] + $value['m'], $dateArr[2] + $value['d'], $dateArr[0] + $value['y']));}function GetWeekDay($date){ //计算出给出的日期是星期几
$dateArr = explode(“-”, $date);return date(“w”, mktime(0,0,0,$dateArr[1],$dateArr[2],$dateArr[0]));}?>{downsource}
$dateArr = explode(“-”, $date);if(is_numeric($dateArr[0])&& is_numeric($dateArr[1])&& is_numeric($dateArr[2])){ return checkdate($dateArr[1],$dateArr[2],$dateArr[0]);} return false;}function check_time($time){ //检查时间是否合法时间
$timeArr = explode(“:”, $time);if(is_numeric($timeArr[0])&& is_numeric($timeArr[1])&& is_numeric($timeArr[2])){ if(($timeArr[0] >= 0 && $timeArr[0] <= 23)&&($timeArr[1] >= 0 && $timeArr[1] <= 59)&&($timeArr[2] >= 0 && $timeArr[2] <= 59))return true;else return false;} return false;}function DateDiff($date1, $date2, $unit = “"){ //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天
switch($unit){ case 's': $dividend = 1;break;case 'i': $dividend = 60;break;case 'h': $dividend = 3600;break;case 'd': $dividend = 86400;break;default: $dividend = 86400;} $time1 = strtotime($date1);$time2 = strtotime($date2);if($time1 && $time2)return(float)($time11;mt_srand((double)microtime()* 1000000);for($i = 0;$i < $length;$i++){ $hash.= $chars[mt_rand(0, $max)];}return $hash;}?>{downsource}截取一定长度的字符串(该函数对GB2312使用有效) $length){ if($sss){ $length=$length-3;$addstr=@#...@#;} for($i = 0;$i < $length;$i++){ if(ord($string[$i])> 127){ $wordscut.= $string[$i].$string[$i + 1];$i++;} else { $wordscut.= $string[$i];} } return $wordscut.$addstr;}return $string;}?>{downsource}取得客户端IP地址{downsource}判断邮箱地址{downsource}分页(两个函数配合使用)
global $page,$totalpage;$out=”共“.$totalpage.”页 “;$linkNum =4;$start =($page-round($linkNum/2))>0 ?($page-round($linkNum/2)): ”1“;$end =($page+round($linkNum/2))<$totalpage ?($page+round($linkNum/2)): $totalpage;$prestart=$start-1;$nextend=$end+1;if($page<>1)$out.= ”第一页 “;if($start>1)$out.=”..<< “;for($t=$start;$t<=$end;$t++){ $out.=($page==$t)? ”[“.$t.”] “ : ”$t “;}if($end<$totalpage)$out.=”>>..“;if($page<>$totalpage)$out.= ” 最后页“;return $out;}?>{downsource}获取新插入数据的ID{downsource}//获得当前的脚本网址
if(empty($_SERVER[”QUERY_STRING“]))$nowurl = $scriptName;else $nowurl = $scriptName.”?“.$_SERVER[”QUERY_STRING“];} return $nowurl;}?>{downsource}//把全角数字转为半角数字{downsource}//去除HTML标记“,”>“,$txt);$txt = preg_replace(”/[rn]{1,}/isU“,”rn“,$txt);return $txt;}?>{downsource}//相对路径转化成绝对路径
preg_match('/(http|https|ftp):///', $feed_url, $protocol);$server_url = preg_replace(”/(http|https|ftp|news):///“, ”“, $feed_url);
$server_url = preg_replace(”//.*/“, ”“, $server_url);
if($server_url == ''){
return $content;
}
if(isset($protocol[0])){
$new_content = preg_replace('/href=”//', 'href=“'.$protocol[0].$server_url.'/', $content);
$new_content = preg_replace('/src=”//', 'src=“'.$protocol[0].$server_url.'/', $new_content);
} else {
$new_content = $content;
}
return $new_content;} ?>{downsource}//取得所有链接
preg_match_all('/
return array('name'=>$arr[2],'url'=>$arr[1]);}?>{downsource}//HTML表格的每行转为CSV格式数组]*?>'si”,'“',$table);$table = str_replace(”“,'”,',$table);$table = str_replace(“”,“{tr}”,$table);//去掉 HTML 标记
$table = preg_replace(“'<[/!]*?[^<>]*?>'si”,“",$table);//去掉空白字符
$table = preg_replace(”'([rn])[s]+'“,”“,$table);$table = str_replace(” “,”“,$table);$table = str_replace(” “,”“,$table);$table = explode(”,{tr}“,$table);
array_pop($table);return $table;}?>{downsource}//将HTML表格的每行每列转为数组,采集表格数据]*?>'si“,”“,$table);$table = preg_replace(”'
$table = preg_replace(”'<[/!]*?[^<>]*?>'si“,”“,$table);//去掉空白字符
$table = preg_replace(”'([rn])[s]+'“,”“,$table);$table = str_replace(” “,”“,$table);$table = str_replace(” “,”“,$table);
$table = explode('{tr}', $table);
array_pop($table);foreach($table as $key=>$tr){ $td = explode('{td}', $tr);array_pop($td);$td_array[] = $td;} return $td_array;}?>{downsource}//返回字符串中的所有单词 $distinct=true 去除重复{downsource}//打印出为本PHP项目做出贡献的人员的清单 //生成随机密码function randStr($len=6){//用来产生密码的字符串$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';$password=”";while(strlen($password)<$len)
$password.=substr($chars,(mt_rand()%strlen($chars)),1);return $password;
}