一.循环:计算循环
1.1 while循环
- while 可以重复执行的一个循环
- () 里面的条件可以是 >,>=,<= ; == 和 === 不行
- 死循环 : 是说这个程序一直执行下去,不结束
- while 先判断在执行
- do while 先执行在判断
- 例1:while(){}
$int = 1;
while($int < 10){
echo '第'.$int.'次';
echo '<hr>';
$int++;
}
- 例2: do{}while();
$int = 1;
do{
echo '第'.$int.'次';
echo '<hr>';
}while($int < 10);
- 例1,例2输出
1.2 for 循环
- for循环的()里面不只一个条件,里面有三个条件语句
- 在写条件语句的时候符号不能用错了,不然可能会变成死循环
- 在循环中要加 $int++; 不然会是死循环
- 注意,如果赋值比较大,并且数字比后面的大,那么符号就要用 —
- break 结束命令
continue 其中一条数据不能输出
例 break ,循环5次
for($int=1;$int<10;$int++){
echo '第'.$int.'遍';
echo '<hr>';
if(isset($_GET['num']) && $int=$_GET['num']){
break;
}
}
输出
例 continue 第5天休息
for($int=1;$int<10;$int++){
if(isset($_GET['num']) && $int=$_GET['num']){
break;
}
echo '第'.$int.'次';
echo '<hr>';
}
- 输出
二.函数
- 随机数函数
- mt_rand 只能是数字
例 随机颜色验证码示例php代码
$code = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
for($i=0;$i<4;$i++){
echo '<span style="color: rgb( ' . mt_rand(0, 255) . ' , ' . mt_rand(0, 255) . ' ,' . mt_rand(0, 255) . ' );">' . $code[mt_rand(0, strlen($code) - 1)] . '</span>';
}
输出随机不同颜色的4位验证码
- 九九乘法表案例
echo '<table border="1">';
for ($i = 1; $i <= 9; $i++) {
echo '<tr>';
for ($y = 1; $y <= $i; $y++) {
echo '<td>';
echo $y . '*' . $i . '=' . $i * $y;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
- 效果
三.超级全局变量
- $_GET 在网址上显示出来,在浏览器的收藏里面使用很方便
- $_POST 不显示出来,这样做更安全
- $_COOKIE , $_SESSION, 是缓存,保护用户信息的
- $_FILES 文件上传信息
- 如果传值是可以被别人看的就用,GET
- 如果传值不能让别人看,比如账号,密码,等这种加密的东西,就用, POST
- 要注意 POST 和 GET 和 COOKIE 会出现重复的下标
$_REQUEST: 一维数组:包含了$_POST ,$_GET, $_COOKIE
$GLOBALS 全部全局变量的组合,是二维数组
- $_SERVER 服务器的环境,会使用里面的下标是时间戳,也会有函数获取时间戳
- $_ENV 也是环境变量
四.预定义,常量
- echo FILE 查看当前文件
- echo DIR 查看当前目录
- echo PHP_VERSION 查看当前PHP版本,设置后台管理程序,显示在后台,给开发者看的
五.网络请求
- file() 把整个文件读入到一个数组中
- file 可以抓取别人网页的数据
- 我们的需求是需要网络请求的,就算不抓取别人的数据,也会用到别人的接口,只要用到第三方的功能,就会用到网络请求
- curl 也是网络请求,我们用这个是1因为它可以使用 POST
- 例 邮政编码查询
function get_url($url, $data, $is_post = 0)
{
$ch = curl_init();
if ($is_post == 0) {
if (!empty($data)) {
$url .= '?';
foreach ($data as $k => $v) {
$url .= $k . '=' . $v . '&';
}
}
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置curl允许执行的时间
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 爬取重定向页面
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0 则无限等待
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置referer,防止盗链
curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回 header 区域内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 要求结果保存到字符串中还是输出到屏幕上
curl_setopt($ch, CURLOPT_USERAGENT, 'Data'); // 在HTTP请求中包含一个 "User-Agent:"头的字符串
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 强制使用 HTTP/1.1
if ($is_post == 1) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$html = curl_exec($ch); // 去执行curl 并且打印出来,但是如果关闭了,就不会打印出来了
if (curl_errno($ch)) {
return curl_errno($ch);
}
curl_close($ch); // 关闭
return $html;
}
$data = [
'key' => '385b74677e7c5538e5fdebcf3f4e7664',
'postcode' => '646200',
'pagesize' => '5'
];
echo get_url('http://v.juhe.cn/postcode/query', $data);
- 输出