PHP入门

PHP

后端 php


PHP (Hypertext Preprocessor):超文本预处理器

  • 什么是 PHP 文件?

PHP 文件能够包含文本、HTML、CSS 、js以及 PHP 代码
PHP 代码在服务器上执行,而结果以纯文本返回浏览器
PHP 文件的后缀是 “.php“

  • PHP 能够做什么?

PHP 能够生成动态页面内容
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
PHP 能够接收表单数据
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据
PHP 能够限制用户访问网站中的某些页面
PHP 能够对数据进行加密

PHP 脚本以 <?php 开头,以 ?> 结尾
echo 输出字符串(可以在页面中查看)
php 可以和html混合输出

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title></title>
  6. </head>
  7. <body>
  8. <?php
  9. echo "hello php";
  10. ?>
  11. </body>
  12. </html>

语义:

  • 一种是在程序中使用结构定义语句,例如流程控制、函数定义、类的定义等,用来定义程序结构使用的语句。在结构语句后面不能使用分号作为结束;
  • 另一种是在程序中使用功能执行语句,例如变量的声明、内容的输出、函数的调用等,是用来在程序中执行某些特定功能的语句,这种语句也可以成为指令,php需要在每个指令后用分号结束。

注释:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title></title>
  6. </head>
  7. <body>
  8. <?php
  9. // 这是单行注释
  10. # 这也是单行注释
  11. /*多行*/
  12. ?>
  13. </body>
  14. </html>

变量(定义变量需要以$开头):

  1. <?php
  2. $x = 5;
  3. $y = 6;
  4. $z = $x + $y;
  5. echo $z;
  6. ?>

数组

  • 简单数组
  1. $array = array1,2,3
  2. $array [0] //1
  • 复杂数组
  1. $arr = array(
  2. "color" => "red",
  3. "font_size" => "16px",
  4. "line_height" => "32px"
  5. );
  6. echo $arr["color"]."<br>";
  7. // echo "<br>"; //单独写或者拼接
  8. echo $arr."<br>"; //Array
  9. echo json_encode($arr); //php不能直接输出数组,必须转成字符串

对象(Object) php里面定义对象必须通过类

  1. <?php
  2. /*使用“->”表示对象的属性,相对于js里面的“.”
  3. 使用 “.”来实现字符串和变量的拼接*/
  4. class Person {
  5. function __construct($name) {
  6. $this->name = $name;
  7. }
  8. function show() {
  9. echo $this->name;
  10. }
  11. }
  12. $q = "laowang";
  13. $p = new Person("xiaoming");
  14. echo $p->name."<br>"; //xiaoming
  15. echo "$p->name $q <br>"; //xiaoming laowang
  16. $p->name = "xiaohong";
  17. $p->show(); //xiaohong
  18. ?>

表单 (welcome.php(也可以通过post方式提交))

html

  1. <form action="welcome.php" method="get">
  2. 年龄: <input type="text" name="age"><br>
  3. 地址: <input type="text" name="address"><br>
  4. <input type="submit" value="Get提交">
  5. </form>

php

  1. <p>欢迎 <?php echo $_GET["age"]; ?></p>
  2. <p>你的邮箱: <?php echo isset($_GET["address"]) ? $_GET["address"] : "无"; ?></p>

解析ajax请求

html

  1. ajax("http://10.9.164.140:8090/WX/PHP/ajax/ajax.php?username=xiaoming",
  2. function (data) {
  3. console.log(data)
  4. });

php

  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. $username = isset($_GET["username"]) ? $_GET["username"] : "has not username";
  4. $sex = isset($_GET["sex"]) ? $_GET["sex"] : "man";
  5. $age = isset($_GET["age"]) ? $_GET["age"] : "20";
  6. $data = array(
  7. "username" => $username,
  8. "sex" => $sex,
  9. "age" => $age
  10. );
  11. echo json_encode($data);
  12. ?>

输出(没有传参就打印默认的)

{"username":"xiaoming","sex":"man","age":"20"}
  • 注意 header('Access-Control-Allow-Origin: *');可以解决跨域问题。

解析jsonp请求

html

  1. <button id="btn">请求</button>

js

  1. function fn(data) {
  2. console.log(data);
  3. }
  4. document.getElementById("btn").onclick = function(){
  5. var oScript = document.createElement("script");
  6. oScript.src = "jsonp.php?callback=fn";
  7. document.body.appendChild(oScript);
  8. }

jsonp

  1. <?php
  2. $callback = isset($_GET["callback"]) ? $_GET["callback"] : "callback";
  3. $data = array(
  4. "username" => "liming",
  5. "sex" => "男",
  6. "age" => "21"
  7. );
  8. $json = json_encode($data);
  9. echo "$callback($json)";
  10. ?>

结果(点击请求):

Object {username: "liming", sex: "男", age: "21"}

js(加强版)

  1. document.getElementById("btn").onclick = function(){
  2. jsonp("jsonp.php?callback=?&username=lili",function(data){
  3. console.log(data)
  4. })
  5. };
  6. function jsonp(url,callback) {
  7. var oScript = document.createElement("script");
  8. var arr = url.split("?callback=");
  9. var callbackName = arr[1].split("&")[0];
  10. var data = arr[1].split("&")[1];
  11. if (callbackName == "?") {
  12. callbackName = "jsonp" + new Date().getTime();
  13. }
  14. window[callbackName] = callback;
  15. oScript.src = arr[0] + "?callback=" + callbackName + "&" +data;
  16. document.body.appendChild(oScript)
  17. }
 markdown格式不对,找时间再改。

发表评论

电子邮件地址不会被公开。 必填项已用*标注