[php learn] php 从头開始学习1

时间:2023-03-09 22:50:05
[php learn] php 从头開始学习1

前言:大概在2006年的时候,学习过一段时间的php。而且当时做了一个下载的站点,后来因为读研究生阶段用的是java、j2ee相关,所以php就搁浅掉了,php这些年也发生了非常大的变化,最大一个变化是支持面向对象了。

如今因为须要php做些东西,再次学习,从头開始!

Local和Global作用域:
函数之外声明的变量拥有global作用域。仅仅能在函数之外訪问

PHP globalkeyword
globalkeyword用与訪问函数外的全局变量
<?

php

$x=5;
$y=10;

function myTest()
{
    global $x,$y;
    $y=$x+$y;
}

myTest();
echo $y;
?>

PHP同一时候在名为$GLOBALS[index]的数组中存储了全部的全局变量。

下标存为变量名,这个数组在函数内也可以訪问,而且可以用于直接更新全局变量。


上面的样例能够重写为:
<?

php

$x=5;
$y=10;

function myTest()
{
     $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}

myTest();
echo $y;

?>

echo 和 print 之间的差异:

  • echo - 可以输出一个以上的字符串
  • print - 仅仅能输出一个字符串。并始终返回 1

var_dump()函数会返回变量的数据类型和值。

设置 PHP 常量

如需设置常量。请使用 define() 函数 - 它使用三个參数:

  1. 首个參数定义常量的名称
  2. 第二个參数定义常量的值
  3. 可选的第三个參数规定常量名是否对大写和小写敏感。默认是 false。
<?php
define("GREETING", "Welcome to W3School.com.cn!");
echo GREETING;
?>
常量输出不用带$

运算符 名称 样例 结果
== 等于 $x == $y 假设 $x 等于 $y,则返回 true。
=== 全等(全然同样) $x === $y 假设 $x 等于 $y,且它们类型同样,则返回 true。
!= 不等于 $x != $y 假设 $x 不等于 $y,则返回 true。
<> 不等于 $x <> $y 假设 $x 不等于 $y。则返回 true。
!== 不全等(全然不同) $x !== $y 假设 $x 不等于 $y,且它们类型不同样,则返回 true。
> 大于 $x > $y 假设 $x 大于 $y,则返回 true。
< 大于 $x < $y 假设 $x 小于 $y,则返回 true。
>= 大于或等于 $x >= $y 假设 $x 大于或者等于 $y,则返回 true.
<= 小于或等于 $x <= $y 假设 $x 小于或者等于 $y,则返回 true。

数组:
#array

$car=array("Volvo","BWM","Jeep");

var_dump($car);

结果:
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BWM" [2]=> string(4) "Jeep" }


foreach:

Syntax

foreach ($array as $value) {

  code to be executed;

}

Example

<?

php 

$colors = array("red","green","blue","yellow"); 



foreach ($colors as $value) {

  echo "$value <br>";

}

?

>


PHP Global Variables - Superglobals

Several predefined variables in PHP are "superglobals", which means that they are always accessible, regardless of scope - and you can access them from any function, class or file without having to do anything special.

The PHP superglobal variables are:

  • $GLOBALS
  • $_SERVER
  • $_REQUEST     
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION
 $_SERVER['HTTP_REFERER']:
HTTP Referer是header的一部分,当浏览器向webserver发送请求的时候。通常会带上Referer。告诉server我是从哪个页面链接过来的,server籍此能够获得一些信息用于处理。


Element/Code Description
$_SERVER['PHP_SELF'] Returns the filename of the currently executing script
$_SERVER['GATEWAY_INTERFACE'] Returns the version of the Common Gateway Interface (CGI) the server is using
$_SERVER['SERVER_ADDR'] Returns the IP address of the host server
$_SERVER['SERVER_NAME'] Returns the name of the host server (such as www.w3schools.com)
$_SERVER['SERVER_SOFTWARE'] Returns the server identification string (such as Apache/2.2.24)
$_SERVER['SERVER_PROTOCOL'] Returns the name and revision of the information protocol (such as HTTP/1.1)
$_SERVER['REQUEST_METHOD'] Returns the request method used to access the page (such as POST)
$_SERVER['REQUEST_TIME'] Returns the timestamp of the start of the request (such as 1377687496)
$_SERVER['QUERY_STRING'] Returns the query string if the page is accessed via a query string
$_SERVER['HTTP_ACCEPT'] Returns the Accept header from the current request
$_SERVER['HTTP_ACCEPT_CHARSET'] Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1)
$_SERVER['HTTP_HOST'] Returns the Host header from the current request
$_SERVER['HTTP_REFERER'] Returns the complete URL of the current page (not reliable because not all user-agents support it)
$_SERVER['HTTPS'] Is the script queried through a secure HTTP protocol
$_SERVER['REMOTE_ADDR'] Returns the IP address from where the user is viewing the current page
$_SERVER['REMOTE_HOST'] Returns the Host name from where the user is viewing the current page
$_SERVER['REMOTE_PORT'] Returns the port being used on the user's machine to communicate with the web server
$_SERVER['SCRIPT_FILENAME'] Returns the absolute pathname of the currently executing script
$_SERVER['SERVER_ADMIN'] Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3schools.com)
$_SERVER['SERVER_PORT'] Returns the port on the server machine being used by the web server for communication (such as 80)
$_SERVER['SERVER_SIGNATURE'] Returns the server version and virtual host name which are added to server-generated pages
$_SERVER['PATH_TRANSLATED'] Returns the file system based path to the current script
$_SERVER['SCRIPT_NAME'] Returns the path of the current script
$_SERVER['SCRIPT_URI'] Returns the URI of the current page


PHP $_REQUEST

PHP $_REQUEST is used to collect
data after submitting an HTML form.

Example

<html>

<body>



<form method="post" action="<?

php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>



<?php 

$name = $_REQUEST['fname']; 

echo $name; 

?>



</body>

</html>


PHP $_POST

PHP $_POST is widely used to collect form data after submitting an HTML form with method="post". $_POST is also widely used to pass variables.

Example

<html>

<body>



<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

Name: <input type="text" name="fname">

<input type="submit">

</form>



<?php 

$name = $_POST['fname']; 

echo $name; 

?>



</body>
</html>

htmlspecialchars

实际应用中,这个过滤无效?


php正則表達式:
“+”, “*”,以及 “?”。当中。
“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次,
“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次,
“?

”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

/jim{2,6}/

上述正則表達式规定字符m能够在匹配对象中连续出现2-6次,

\s:用于匹配单个空格符。包含tab键和换行符;

\S:用于匹配除单个空格符之外的全部字符;

\d:用于匹配从0到9的数字。

\w:用于匹配字母,数字或下划线字符

\W:用于匹配全部与\w不匹配的字符;

. :用于匹配除换行符之外的全部字符。

\b定位符规定匹配模式必须出如今目标字符串的开头或结尾的两个边界之中的一个
“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。
/\bbom/

由于上述正則表達式模式以“\b”定位符开头。所以能够与目标对象中以 “bomb”, 或 “bom”开头的字符串相匹配。

/man\b/

由于上述正則表達式模式以“\b”定位符结尾。所以能够与目标对象中以 “human”, “woman”或 “man”结尾的字符串相匹配。


/([a-z][A-Z][0-9])+/
“()”符号包括的内容必须同一时候出如今目标对象中。
/[^A-C]/
^代表否定