1.基础
<!--
PHP:标准通用标记语言
PHP是将程序嵌入到HTML文档中去执行
PHP是脚本语言
PHP文件要运行在服务器端
书写方式
1.php三个字母可以省略
<?php
echo "hello";
?>
2.<script language="php"></script>
3.<% %> ASP风格
-->
<?php
//1.b变量 必须$开始
header("Content-type: text/html; charset=utf-8");
$a = 20;
$b = 10;
echo $a." ".$b,"<br/>";
//不能以数字开头,由字母,数字,下划线,$组成
//弱类型语言:声明变量时候不需要抢到变量类型
//整形,浮点型,布尔,字符串
$bo = TRUE;
$str = "123";
//第一种打印方式(echo 只能打印字符串)
echo $str,"<br/>";
//扩展:
//把变量名作为变量来使用,一般应用在不确定变量名的时候
$h = "hello";
$$h = "张三";
echo $hello;
//超全局变量 $GLOBALS,涵盖了当前页面的所有变量
//var_dump($GLOBALS);
//var_dump($GLOBALS['_SERVER']['HTTP_HOST']);
//魔术变量
echo __LINE__,"<br/>";//这行代码所在的行数
echo __FILE__,"<br/>";//当前文件的完整路径
echo __DIR__,"<br/>";//当前文件所在的文件夹路径
// __FUNCTION__ 只是返回函数的名字;(4.x)
// __METHOD__ 返回类的名字和方法的名字。 (5.x)
class Test{
public function doit(){
echo __FUNCTION__;
}
public function doitAgain(){
echo __METHOD__;
}
}
$obj = new Test();
$obj->doit();
echo '<br>';
$obj->doitAgain();
echo '<br>';
//2. 常量 :不可以改变 define("常量名字",值)
define("PI", 3.14);
echo PI,"<br/>";
echo PHP_OS,"<br/>";//当前运行的操作系统
echo PHP_VERSION;//PHP版本
//路径:(绝对/相对路径) 推荐 相对路径
?>
2.string
<?php
header("Content-type: text/html; charset=utf-8");
$a = 10;
//双引号是把$a当做变量
//单引号是把$a当做字符串
$str = "你{$a}好";
$str2 = '$a';
echo $str,"<br/>";
echo $str2,"<br/>";
//在PHP里面,+只会进行数值运算,不会进行字符串拼接
//如果想拼接用. 或者 函数
$str3 = "你好";
$str4 = "世界";
echo $str3.$str4;
echo "<br/>";
//字符串使用+ 如果字符串开头是数字则相加,否则跳过
echo "30a" - 29 - "5tt" - "a30","<br/>";
//字符串之间嵌套变量
$lan = "蓝胖子";
echo "你好{$lan}大富豪","<br/>";
echo "你好".$lan."大富豪","<br/>";
//<<<EOF ... EOF; 叫定界符,可以定义一段字符串
//注意:结尾的EOF,不要缩进
/*
* 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;
2.在PHP定界符中的任何特殊字符都不需要转义;
3.PHP定界符中的PHP变量会被正常的用其值来替换。
* */
echo <<<EOF
你好
我是
EOF;
echo <<<EOF
<a href="javascript:edit('asd', 'aaa')">编辑</a> |
<font color="#ccc">删除</font>
<a href="javascript:confirmurl('?m=admin&posid=12')">删除</a> |
<font color="red">启用</font></a> |
<a href="javascript:preview('3','ds')"><font color="green">演示</font></a>
EOF;
//取值符&
$a = "大连";
$b = $a;//赋值
echo "<br>";
echo $b;
$a = "北京";
echo "<br>";
echo $b;
$c = "沈阳";
$d = &$c;
echo "<br>";
echo $d;
$c = "鞍山";
echo $d;
echo "<br>";
//explode("string") 字符串->分割成数组
//implode("array") 数组->组合成字符串
// trim() 从字符串2边一起开始查找
// ltrim()
// rtrim()
// 注意: 必须从开头或者结尾的连续字符串
//md5 16位 32位(位数指的是加密后字母数字组合)
$n = "今天";
echo md5($n);echo "<br/>";
//800dfdd90200bd47bb4bb83def4fea56
//sha1()
echo sha1($n);echo "<br/>";
//str_repeat(string,repeat) 把字符串重复指定次数
echo str_repeat(".",13);
//str_replace 替换
//strlen()字符串长度
//substr("str",5) 截取
//strtolower()
//strtoupper()
//htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
echo htmlspecialchars("<p>发多少</p>");
?>
3.array
<?php
header("Content-type: text/html; charset=utf-8");
// 1.索引数组 利用0,1.....对数组里元素进行获取
// 2.关联数组 像js里的json对象一样,由key=>value组成
//1.索引数组
echo "<pre>";
$arr = array(2,213,"你好",FALSE);
$arr2 = array("name"=>"张三","age"=>18,"sex"=>"?");
// echo $arr[2];
// echo $arr2[name];echo"<hr/>";
//打印方式
// print_r($arr2);
// var_dump($arr2);
//统计数组元素个数
//echo count($arr2)."<br/>";
//修改索引数组 关联数组 key值是数字,
//数字根据当前已有的key值里最大的数字向后排列
//如果数组里有索引位3的元素则替换,没有则添加
$arr2[3] = "李四";
$arr2[] = "我是新手";//默认向后添加
$arr[] = "李四";
//print_r($arr);
//print_r($arr2);
echo "unset 清空一个变量";
//unset 清空一个变量,
//对于数组来说,清空某个位置的值,但是索引/key还在
unset($arr2[name]);
//print_r($arr2);
//遍历
// for($i = 0; $i < count($arr); $i++){
// echo $arr[$i];echo"<br/>";
// }
// foreach($arr as $k =>$v){//遍历每对key=>value
// echo $k." ".$v;echo"<br/>";
// }
// foreach($arr as $k){//默认访问value
// echo $k;echo"<br/>";
// }
// array_push($var); 尾巴+
// array_pop();尾巴-
// array_shift();头+
// array_unshift($var);头-
// array_map
// 函数将用户自定义函数作用到数组中的每个值上,
// 并返回用户自定义函数作用后的带有新的值的数组。
$theArr = array(21,20,29,32,30);
//排序
sort($theArr);//0.............
rsort($theArr);//........0
ksort($arr2); //关联数组 按value 值的ASCII A:65 a:97 0:48
krsort($arr2);
/*
sort();//升序
rsort();//降序
asort — 对数组进行排序并保持索引关系;按值排序
arsort — 对数组进行逆向排序并保持索引关系
ksort — 对数组按照键名排序
krsort — 对数组按照键名逆向排序
*/
//print_r($arr2);
//print_r($theArr);
$ageArr = array_map(function($i){
return ++$i;
},$theArr);
//print_r($ageArr);
//数组作为参数,传入方法中
function pushOne(&$arr, $num){//如果要才做原数组,需呀接收原地址
$arr[] = $num;
}
pushOne($theArr, 100);
//print_r($theArr);
//print_r(ceil(array_sum($theArr) / count($theArr)));
//字符串与数字进行比较,
//如果字符串里不是数字,则转化为0
if("lm" < 18){}
if("lm" < "bc"){}
//正常两个英文字符串比较,
//比较的是第一位字母的ASCII码,如果第一位相同,看第二位
?>
4.variable
<?php
header("content-type:text/html;charset='utf-8'");
//变量作用域
$quan = "我是全局";
function a($a, $b) {
global $quan;
//全局变量必须经过 global之后才能用
$ju = "我是局部变量";
echo $ju . $quan;
}
//static 静态变量
function test() {
static $c = 3;
//只执行一次
$c++;
echo $c;
}
test();
test();
test();
a();
//php系统函数
date_default_timezone_set("Asia/shanghai");
var_dump(date('Y-m-d h-i-s'));
//获取当前时间毫秒数
var_dump(microtime());
//10位
//JS里的时间毫秒数位13位
//用下面这种方法处理一下PHP的毫秒数
function get_total_millisecond() {
$time = explode(" ", microtime());
$time = $time[1] . ($time[0] * 1000);
$time2 = explode(".", $time);
$time = $time2[0];
return $time;
}
//判断方法是否存在
if (function_exists("get_total_millisecond")) {
echo get_total_millisecond(microtime());
} else {
echo "get_total_millisecond not found";
}
echo "<br/>";
function b(&$theNum){
$theNum = 99;
}
$n = 10;
b($n);
echo $n;
?>
5.导入文件
06sum.php
<?php
function arrSum($arr){
return array_sum($arr);
}
?>
07import_others_file.php
<?php
require_once "06sum.php";
//require "";
//include "";
//include_once "";
//xxx_once:先查询有没有被引入,如果已经引入,则不会再引入;推荐
//require:调用失败(发生错误后),将导致一个致命的错误,代码立即停止执行;顶部引入
//include:..................... ,只给出一个警告,脚本仍然继续执行。使用之前再进行引入
//在一个文件,require 和 include 不能一起用
$a = array(1,2,3);
echo arrSum($a);
数据库随机插数据
$colorArr = ['浅粉红','粉红','猩红','紫色','深粉色','靛青 ','幽灵的白色','石板灰','淡蓝色','淡青色','军校蓝','青色','绿玉','浅褐色'];
$typeArr = ['L','XL','XXL','M','S'];
for($i = 1; $i <= 1000; $i++){
$color = $colorArr[rand(0, count($colorArr) - 1)];
$type = $typeArr[rand(0, count($typeArr) - 1)];
$left = rand(0,200);
$sql="insert into storage(id,commodityid,color,size,count) values (null,$i,'$color','$type','$left')";
mysql_query($sql) or die(mysql_error());
}