php 进阶_PHP进阶篇

$arr=array()

查看全部

0

采集

收起

2021-02-13

前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,即$m = ($page-1) * $n

//连接数据库

mysql_connect('127.0.0.1', 'code1', '');

mysql_select_db('code1');

mysql_query("set names 'utf8'");

$page = 2;

$pagesize = 2;//预设翻页参数

//在下两行构建分页查询

$offset = ($page - 1) * $pagesize;

$sql = "select * from user limit $offset, $pagesize";

//获取翻页数据

$result = mysql_query($sql);

$data = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

$data[] = $row;

}

echo '

';

print_r($data);

echo '

';

查看全部

获取数据集中的一行数据,最常用的是mysql_fetch_array

//连接数据库

mysql_connect('127.0.0.1', 'code1', '');

mysql_select_db('code1');

mysql_query("set names 'utf8'");

//数据预处理 防止查询不到数据

mysql_query("insert into user(name, age, class) values('王二', 19, '高三五班')");

//进行数据查询

$sql = "select * from user limit 1";

$result = mysql_query($sql);

$row = mysql_fetch_array($result);//在这里获取一行数据

echo '

';

print_r($row);

echo '

';

//使用mysql_fetch_array函数获取一行数据,并将他赋值到$row变量中,以便于后面输出。

查看全部

插入数据其实也是通过执行一个sql语句来实现,通常数据都是存储在变量或者数组中,因此sql语句需要先进行字符串拼接得到。

$name = '李四';

$age = 18;

$class = '高三一班';

$sql = "insert into user(name, age, class) values('$name', '$age', '$class')";

mysql_query($sql); //执行插入语句

查看全部

PHP要对数据库进行操作,首先要做的是与数据库建立连接,通常我们使用mysql_connect函数进行数据库连接,该函数需要指定数据库的地址,用户名及密码。

$host = 'localhost';

$user = 'code1';

$pass = '';

$link = mysql_connect($host, $user, $pass);

PHP连接数据库的方式类似于直接在命令行下通过进行连接,类似:mysql -hlocalhost -ucode1 -p,当连接成功以后,我们需要选择一个操作的数据库,通过mysql_select_db函数来选择数据库。

mysql_select_db('code1');

通常我们会先设置一下当前连接使用的字符编码,一般的我们会使用utf8编码。

mysql_query("set names 'utf8'");

通过上面的步骤,我们就与数据库建立了连接,可以进行数据操作了。

查看全部

//创建可抛出一个异常的函数

function checkNum($number){

if($number>1){

throw new Exception("异常提示-数字必须小于等于1");

}

return true;

}

$filename = 'test.txt';

try {

if (!file_exists($filename)) {

throw new Exception('文件不存在');

}

} catch(Exception $e) {

echo $e->getMessage();

}

查看全部

PHP使用unlink函数进行文件删除。

unlink($filename);

删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。

rmdir($dir);

如果文件夹中存在文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以使用glob函数遍历所有文件。

foreach (glob("*") as $filename) {

unlink($filename);

}

查看全部

PHP写文件也具有两种方式,最简单的方式是采用file_put_contents。

$filename = './test.txt';

$data = 'test';//文件内容

file_put_contents($filename, $data);

查看全部

filesize函数可以取得文件的大小,文件大小是以字节数表示的。

$filename = '/data/webroot/usercode/resource/test.txt';

$size = filesize($filename);

如果要转换文件大小的单位,可以自己定义函数来实现。

function getsize($size, $format = 'kb') {

$p = 0;

if ($format == 'kb') {

$p = 1;

} elseif ($format == 'mb') {

$p = 2;

} elseif ($format == 'gb') {

$p = 3;

}

$size /= pow(1024, $p);

return number_format($size, 3);

}$filename = '/data/webroot/usercode/code/resource/test.txt';$size = filesize($filename);$size = getsize($size, 'kb'); //进行单位转换echo $size.'kb';

查看全部

文件有很多元属性,包括:文件的所有者、创建时间、修改时间、最后的访问时间等。

fileowner:获得文件的所有者filectime:获取文件的创建时间filemtime:获取文件的修改时间fileatime:获取文件的访问时间

其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。

$mtime = filemtime($filename);

echo '修改时间:'.filemtime($filename);

查看全部

$filename = './test.txt';

if (file_exists($filename)) {

echo file_get_contents($filename);

}

如果只是判断文件存在,使用file_exists就行,file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是确切的判断给定的路径是否是一个文件。

$filename = './test.txt';

if (is_file($filename)) {

echo file_get_contents($filename);

}

使用is_readable与is_writeable在文件是否存在的基础上,判断文件是否可读与可写。

$filename = './test.txt';

if (is_writeable($filename)) {

file_put_contents($filename, 'test');

}

if (is_readable($filename)) {

echo file_get_contents($filename);

}

查看全部

读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中。

$content = file_get_contents('./test.txt');

file_get_contents也可以通过参数控制读取内容的开始点以及长度。

$content = file_get_contents('./test.txt', null, null, 100, 500);

PHP也提供类似于C语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。

$fp = fopen('./text.txt', 'rb');

while(!feof($fp)) {

echo fgets($fp); //读取一行

}

fclose($fp);

$fp = fopen('./text.txt', 'rb');

$contents = '';

while(!feof($fp)) {

$contents .= fread($fp, 4096); //一次读取4096个字符

}

fclose($fp);

使用fopen打开的文件,最好使用fclose关闭文件指针,以避免文件句柄被占用。

编写代码读取$filename的文件内容。

$content = file_get_contents($filename);

echo $content;

查看全部

PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

session_start();

$_SESSION['name'] = 'jobs';

unset($_SESSION['name']);

echo $_SESSION['name']; //提示name不存在

如果要删除所有的session,可以使用session_destroy函数销毁当前session,session_destroy会删除所有数据,但是session_id仍然存在。

session_start();

$_SESSION['name'] = 'jobs';

$_SESSION['time'] = time();

session_destroy();

查看全部

session_start();

$_SESSION['test'] = time();

var_dump($_SESSION);

session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等。

session_start();

$_SESSION['ary'] = array('name' => 'jobs');

$_SESSION['obj'] = new stdClass();

var_dump($_SESSION);

设置一个session,使name的值为jobs:

session_start();

$_SESSION['name'] = 'jobs';

查看全部

//开始使用session

session_start();

//设置一个session

$_SESSION['test'] = time();

//显示当前的session_id

echo "session_id:".session_id();

echo "
";

//读取session值

echo $_SESSION['test'];

//销毁一个session

unset($_SESSION['test']);

echo "
";

var_dump($_SESSION);

查看全部

设置了有效路径的时候,不在当前路径的时候则看不到当前cookie。

setcookie('test', '1',0, '/path');

var_dump($_COOKIE['test']);

查看全部

PHP中删除cookie也是采用setcookie函数来实现。

setcookie('test', '', time()-1);

查看全部

setcookie具有7个可选参数,我们常用到的为前5个:

name( Cookie名)可以通过$_COOKIE['name'] 进行访问

value(Cookie的值)

expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效

path(有效路径)如果路径设置为'/',则整个网站都有效

domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效

$value = 'test';

setcookie("TestCookie", $value);//名字是'TestCookie',值为value

setcookie("TestCookie", $value, time()+3600);  //有效期一小时

setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域

PHP中还有一个设置Cookie的函数setrawcookie,setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。

setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);

因为Cookie是通过HTTP标头进行设置的,所以也可以直接使用header方法进行设置。

header("Set-Cookie:cookie_name=value");

查看全部

0

采集

收起

2021-02-11

正则匹配常用在表单验证上

$user = array(

'name' => 'spark1985',

'email' => 'spark@imooc.com',

'mobile' => '13312345678'

);

//进行一般性验证

if (empty($user)) {

die('用户信息不能为空');

}

if (strlen($user['name']) < 6) {

die('用户名长度最少为6位');

}

//用户名必须为字母、数字与下划线

if (!preg_match('/^\w+$/i', $user['name'])) {

die('用户名不合法');

}

//验证邮箱格式是否正确

if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) {

die('邮箱不合法');

}

//手机号必须为11位数字,且为1开头

if (!preg_match('/^1\d{10}$/i', $user['mobile'])) {

die('手机号不合法');

}

echo '用户信息验证成功';

查看全部

0

采集

收起

2021-02-11

调整字符串的日期格式:

$string = 'April 15, 2014';

$pattern = '/(\w+) (\d+), (\d+)/i';

$replacement = '$3, ${1} $2';

echo preg_replace($pattern, $replacement, $string); //结果为:2014, April 15

其中${1}与$1的写法是等效的,表示第一个匹配的字串,$2代表第二个匹配的。

将目标字符串$str中的文件名替换后增加em标签,例如index.php要替换成index.php

$str = '主要有以下几个文件:index.php, style.css, common.js';

$p = '/\w+\.\w+/i';

$str = preg_replace($p, '$0', $str);

echo $str;//$0匹配所有字串

查看全部

preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。

$p = "|]+>(.*?)[^>]+>|i";

$str = "example:

this is a test
";

preg_match_all($p, $str, $matches);

print_r($matches);

可以使用preg_match_all匹配一个表格中的数据:

$p = "/

(.*?)\s*(.*?)\s*/i";

$str = "

Eric25
John26
";

preg_match_all($p, $str, $matches);

print_r($matches);

使用preg_match_all匹配所有li标签中的数据。

$p = "/

(.*)/i";

preg_match_all($p, $str, $matches);

print_r($matches[1]);

//解释下这个正则://后面的i表示不区分大小写,

(.*?)表示li标签内的匹配的()内的值有多少,括号内的.表示所有单字符,*表示数量为0个或者多个。也就是li标签内有字符就显示出来

查看全部

0

采集

收起

2021-02-11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值