<?php
header("content-type:text/html;charset=utf-8");
//1. date_default_timezone_set — 设定用于一个脚本中所有日期时间函数的默认时区
// date_default_timezone_set('PRC');
date_default_timezone_set('Asia/Hong_Kong');//Asia/Shanghai
echo date('Y-m-d H:i:s',strtotime('-1day')),"<br>";
echo date('Y-m-d H:i:s',time()-3600*24),"<br>";
// 2.
$a = 'abcdef';
echo $a{0};
echo substr($a,0-strlen($a),1);
echo $a[0],"<br>";
//3
// substr() 函数返回字符串的一部分
// 中文截取mb_substr( $str, $start, $length, $encoding )
// $str,需要截断的字符串
// $start,截断开始处,起始处为0
// $length,要截取的字数
// $encoding,网页编码,如utf-8,GB2312,GBK
$b='你好郑州';
echo substr($a,1,3),"<br>";//bcd
echo mb_substr($b,2,5,'utf-8');//郑州
// 4,
// error_reporting — 设置应该报告何种 PHP 错误
// 关闭所有PHP错误报告
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 报告 E_NOTICE也挺好 (报告未初始化的变量或者捕获变量名的错误拼写)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// 除了 E_NOTICE,报告其他所有错误,这是在 php.ini 里的默认设置
error_reporting(E_ALL ^ E_NOTICE);
// 报告所有 PHP 错误 (参见 changelog)
error_reporting(E_ALL);
// 报告所有 PHP 错误
error_reporting(-1);
// 和 error_reporting(E_ALL); 一样
ini_set('error_reporting', E_ALL);
// 5,
// header("Location:https://www.baidu.com");
// header("refresh:3;url=https://www.baidu.com");
// echo "<meta http-equiv=refresh content='3; url=http://wwww.baidu.com'>";
/**echo "<script language='javascript'>";
echo " location='http://www.baidu.com';";
echo "</script>";*/
// 6,
// 设置cookie
// $value = 'something from somewhere';
// setcookie("TestCookie", $value); /* 简单cookie设置 */
// setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */
// setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
// print $_COOKIE['TestCookie'];//读取
// setcookie("name","",time()-1);//删除
// 7,
setcookie('user.age', '18');
var_dump($_COOKIE['user_age']);
// 8,
$q = array(
'where' => 'uid=1',
'order' => 'uid',
);
$w = array(
'where' => 'uid=2',
'order' => 'uiddesc',
);
$e=$q+$w;
var_dump($e);
var_dump($r=array_merge($q,$w));
// 9,
var_dump(array_merge([1,2,3], [3,4,5]));
//21,
class Animal{
public function __construct() {
$this->created = date("Y-m-d H:i:s", time());
}
}
class Penguin extends Animal {
}
$tux = new Penguin;
echo $tux->created;
// class Animal{
// public function __construct() {
// $this->created = time();
// }
// public function __destruct() {
// fclose($this->logfile_handle);
// }
// }
//25,
// 编码
// echo '<a href="mycgi?foo=', urlencode($userinput), '">';
//解码
$query = "my=apples&are=green+and+red";
foreach (explode('&', $query) as $chunk) {
$param = explode("=", $chunk);
var_dump($param);
if ($param) {
printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
}
}
//26,
//正则匹配
$a="<H>some</H><b>html</b>";
Preg_match("/<\w?>(\w*?)<\/\w?>/", $a, $matches);
echo "$matches[1]";//some
$email = "1313@qq.com";
var_dump(preg_match('/^[\w\-\.]+@[\w\-]+(\.\w+)+$/',$email));//正确1
//36,
$str = "Is your name O'reilly?";
// 输出: Is your name O\'reilly?
echo addslashes($str);
echo stripslashes($str);//Is your name O'reilly?
//42,
$fp=fopen("lock0.txt", "w+");
// 排它性的锁定 先锁上,写完,打开
if(flock($fp, LOCK_EX)){
//获得写锁 ,写数据
fwrite($fp, "write something");
// 解除绑定
flock($fp, LOCK_UN);
}else{
echo "file is locking";
}
fclose($fp);
//43
// 遍历文件夹下的文件和文件夹
function my_scandir($dir){
$files=array();
if(is_dir($dir)){
if($handle=opendir($dir)){
while (($file=readdir($handle))!==false) {
if($file!="."&&$file!=".."){
if(is_dir($dir."/".$file)){
$files[$file]=my_scandir($dir."/".$file);
}else{
$files[]=$dir."/".$file;
}
}
}
closedir($handle);
return $files;
}
}
}
$q_array=my_scandir('D:\Bitnami\wampstack-5.6.19-0\apache2\htdocs\001mianshiti');
print_r($q_array);
// function my_dir($dir){
// $files=array();
// if(@$handle=opendir($dir)){//注意这里要加一个@,不然会有warning错误提示:)
// while(($file=readdir($handle))!==false){
// if($file!=".." && $file!="."){//排除根目录;
// if(is_dir($dir."/".$file)){//如果是子文件夹,就进行递归
// $files[$file]=my_dir($dir."/".$file);
// }else{//不然就将文件的名字存入数组;
// $files[]=$file;
// }
// }
// }
// closedir($handle);
// return $files;
// }
// }
// //以下是测试
// $q_array=my_dir('D:\Bitnami\wampstack-5.6.19-0\apache2\htdocs\001mianshiti');
// print_r($q_array);
//44,
$script = "以下内容不显示:<script type='text/javascript'>alert('cc');</script>";
$pattern = "/<[^>].?>.?<\/>/si";
echo preg_replace($pattern, "脚本内容", $script)."<br>";//以下内容不显示:脚本内容
//46,
$array = array(
'1' => 'q',
'2'=>'w',
'3'=>'e',
'4'=>'w'
);
print_r(array_keys($array, "w"));
foreach ($array as $key => $value) {
echo "key:$key; Value: $value<br />";
}
// while ( $zimu= current($array)) {
// if ($zimu=='w') {
// echo key($array)."<br>";
// echo current($array);
// }
// next($array);
// }
// 48,pdo
$dbms='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$dbName='text'; //使用的数据库
$user='root'; //数据库连接用户名
$pass='123456'; //对应的密码
$dsn="$dbms:host=$host;dbname=$dbName";
try {
$dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
echo "连接成功<br/>";
// 你还可以进行一次搜索操作
foreach ($dbh->query('SELECT * from books') as $row) {
print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
}
$dbh = null;
} catch (PDOException $e) {
die ("Error!: " . $e->getMessage() . "<br/>");
}
//默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
$db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
// GD库
var_dump(gd_info());
list($width, $height, $type, $attr) = getimagesize("1.png");
echo "宽度为:" . $width;
echo "高度为:" . $height;
echo "类型为:" . $attr."<br/>";
// 以文件方式打开
$size_info1 = getimagesize("1.png");
// 以字符串格式打开
$data = file_get_contents("1.png");
$size_info2 = getimagesizefromstring($data);
print_r($size_info2);
// curl
// 创建一个cURL句柄
$ch = curl_init('http://www.yahoo.com/');
// 执行
curl_exec($ch);
// 检查是否有错误发生
if(!curl_errno($ch))
{
$info = curl_getinfo($ch);
echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url'];
}
// Close handle
curl_close($ch);
?>