我们来看一下正则表达式元字符的具体应用。
/fo+/
因为上述正则表达式中包含“+”元字符,表示可以与目标对象中的 “fool”, “fo”, 或者 “football”等在字母f后面连续出现一个或多个字母o的字符串相匹配。
/eg*/
因为上述正则表达式中包含“*”元字符,表示可以与目标对象中的 “easy”, “ego”, 或者 “egg”等在字母e后面连续出现零个或多个字母g的字符串相匹配。
/Wil?/
因为上述正则表达式中包含“?”元字符,表示可以与目标对象中的 “Win”, 或者 “Wilson”,等在字母i后面连续出现零个或一个字母l的字符串相匹配。
除了元字符之外,用户还可以精确指定模式在匹配对象中出现的频率。例如,
/jim{2,6}/
上述正则表达式规定字符m可以在匹配对象中连续出现2-6次,因此,上述正则表达式可以同jimmy或jimmmmmy等字符串相匹配。
在对如何使用正则表达式有了初步了解之后,我们来看一下其它几个重要的元字符的使用方式。
s:用于匹配单个空格符,包括tab键和换行符;
S:用于匹配除单个空格符之外的所有字符;
d:用于匹配从0到9的数字;
w:用于匹配字母,数字或下划线字符;
W:用于匹配所有与w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
(说明:我们可以把s和S以及w和W看作互为逆运算)
下面,我们就通过实例看一下如何在正则表达式中使用上述元字符。
/s+/
上述正则表达式可以用于匹配目标对象中的一个或多个空格字符。
/d000/
PHP正则表达式匹配字符串中的指定标签
在 PHP 应用中,正则表达式主要用于:
•正则匹配:根据正则表达式匹配相应的内容
•正则替换:根据正则表达式匹配内容并替换
•正则分割:根据正则表达式分割字符串
php配置mysql与怎么测试配置数据库成功
如果你是初次配置 php mysql apache的话,我们要怎么测试php连接数据库成功了,只要创建一个test.php文件,然后把下面代码保存到文件。
<?php
$link=mysql_connect("localhost","root","12345"); //12345改成你的mysql密码
if(!$link) echo "失败!";
else echo "成功!";
mysql_close();
?>
PHP显示日期时间详细介绍
PHP的显示时间的代码比ASP还是强大多了,调用起来更加的简单。
先看
php缓存文件技术介绍
nginx有两种缓存机制:fastcgi_cache和proxy_cache
下面我们来说说这两种缓存机制的区别吧
proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态的和动态的
fastcgi_cache作用是缓存fastcgi生成的内容,很多情况是php生成的动态内容
proxy_cache缓存减少了nginx与后端通信的次数,节省了传输时间和后端带宽
fastcgi_cache缓存减少了nginx与php的通信次数,更减轻了php和数据库的压力。
proxy_cache缓存设置
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
python 邮件发实现代码
SMTP (Simple Mail Transfer Protocol)
邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件。大多数的邮件发送服务器 (Outgoing Mail Server) 都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
PHP正确配置mysql 详解教程
不过今天在弄一个CMS时还是出现了一个不可饶恕的错误,无法连接mysql,写了一个测试mysql的php文件如下:
php 清除换行符,清除制表符,去掉注释标记总结
<?php
/**
* 压缩html : 清除换行符,清除制表符,去掉注释标记
* @param $string
* @return 压缩后的$string
* */
function compress_html($string) {
$string = str_replace("rn", '', $string); //清除换行符
$string = str_replace("n", '', $string); //清除换行符
$string = str_replace("t", '', $string); //清除制表符
$pattern = array (
"/> *([^ ]*) *</", //去掉注释标记
"/[s]+/",
"/<!--[^!]*-->/",
"/" /",
"/ "/",
"'/*[^*]**/'"
);
$replace = array (
">1<",
" ",
"",
""",
""",
""
);
return preg_replace($pattern, $replace, $string);
}
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" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
<?php
if($_FILES['myfile']['error'] > 0) { //判断文件是否可以成功上传到服务器,0表示上传成功
echo 'Error: ';
switch ( $_FILES['myfile']['error'] ) {
case UPLOAD_ERR_OK:
$response = 'There is no error, the file uploaded with success.';
break;
case UPLOAD_ERR_INI_SIZE:
$response = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
break;
case UPLOAD_ERR_FORM_SIZE:
$response = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.';
break;
case UPLOAD_ERR_PARTIAL:
$response = 'The uploaded file was only partially uploaded.';
break;
case UPLOAD_ERR_NO_FILE:
$response = 'No file was uploaded.';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$response = 'Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.';
break;
case UPLOAD_ERR_CANT_WRITE:
$response = 'Failed to write file to disk. Introduced in PHP 5.1.0.';
break;
case UPLOAD_ERR_EXTENSION:
$response = 'File upload stopped by extension. Introduced in PHP 5.2.0.';
break;
default:
$response = 'Unknown error';
break;
}
echo $response;
exit; //如果$_FILES['myfile']['error']大于0都是有错误,输出错误信息并退出程序
}
//获取上传文件的MIME类型中的主类型和子类型
list($maintype,$subtype)=explode("/",$_FILES['myfile']['type']);
if ($maintype=="text") { //通过主类型限制不能上传文本文件,例如.txt .html .php等文件文件
echo '问题: 不能上传文本文件。';
exit; //如果用户上传文本文件则退出程序
}
$upfile = './uploads/'.time().$_FILES['myfile']['name']; //定义上传后的位置和新文件名
if ( is_uploaded_file($_FILES['myfile']['tmp_name']) ) { //判断是否为上传文件
if ( !move_uploaded_file($_FILES['myfile']['tmp_name'], $upfile) ) { //从移动文件
echo '问题: 不能将文件移动到指定目录。';
exit;
}
}else{
echo '问题: 上传文件不是一个合法文件: ';
echo $_FILES['myfile']['name'];
exit;
}
echo '文件 : '.$upfile.' 上传成功, 大小为 : ' .$_FILES['myfile']['size'].'!<br>'; //如果文件上传成功则输出
?>
</body>
</html>
php ob_start(ob_gzhandler)进行网页压缩
先来看ob_start用法
使用PHP ob_start()函数打开browser的cache,这样可以保证cache的内容在你调用flush(),ob_end_flush()(或程序执行完毕)之前不会被输出
PHP数据集构建JSON及新数组介绍
function RecordToJson($recordset)
{
$jstr='[';
while($rs = $recordset->Fetch())
{
//$nick = iconv("GBK",'utf-8',$rs['nick']);/*转换为utf-8编码*/
//TODO:遍历结果集
$arr_keys=array_keys($rs);
$jstr=$jstr.'{';
for($i=0;$i<count($arr_keys);$i+=2)
{
//数据库编码为gbk,需要转换编码
//TODO;iconv("GBK",'utf-8',$rs['nick']);/*转换为utf-8编码*/
$key=iconv("GBK",'utf-8',$arr_keys[$i]);//$arr_keys[$i];
$value=iconv("GBK",'utf-8',$rs[$arr_keys[$i]]);//$rs[$arr_keys[$i]];
$jstr=$jstr.'"'.$key.'":"'.$value.'",';
}
$jstr=substr($jstr,0,strlen($jstr)-1);
$jstr=$jstr.'},';
}
$jstr=substr($jstr,0,strlen($jstr)-1);
$jstr=$jstr.']';
return $jstr;
}
PHP支持断点续传实例代码
让PHP下载代码支持断点续传 主要靠的 HTTP协议中header Content-Range来实现
先来说说 HTTP的下载原理
对于HTTP协议,向服务器请求某个文件时,只要发送类似如下的请求即可: