[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 [email protected])
$_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]/

^代表否定

时间: 2024-07-30 21:58:43

[php learn] php 从头開始学习1的相关文章

OpenCms创建站点过程图解——献给OpenCms的刚開始学习的人们

非常多人都听说了OpenCms,知道了它的强大,索性的下载安装了,最终见到了久违OpenCms,看到了它简洁的界面,欣喜过后却不免一脸茫然,这个东西怎么用,我怎么用它来建站,从哪開始,无从下手,找资料,少之双少,几经周折后,迫于时间等诸多因素,非常多人无奈地选择了放弃…… 希望这篇文章能够对OpenCms的追随者们有所帮助,但这也仅仅是OpenCms的皮毛,把它的强大功能为已所用还须要我们付出很多其它的努力…… 一.切换到“/sites/”下,创建网站目录“testWeb” 输入目录的标题,这个

怎样開始学习ADF和Jdeveroper 11g

先给一些资料能够帮助刚開始学习的人開始学习ADF和Jdeveloper11g 1.首先毫无疑问,你要懂java语言. 能够看看Thinking In Java, 或者原来sun的网上的一些文档Sun's Online Docs. 2. 在学习语言的过程中,能够使用jdeveloper作为开发的工具.能够熟悉一下编码/Debug/Syntax的环境.jdev也提供了丰富的代码模板,自己主动补全以及重构的功能.详细能够參考IDE教程. 3.接下去,能够開始ADF的学习. 能够先看一下 Getting

为刚開始学习的人答效率的问题

本文来自读者对我博文的评论. 遇到主动思考者,提出的主动思考过的问题,老贺是相当的兴奋. 完整的对话见<C语言及程序设计实践參考--n=a!+b!+c!>中二楼评论. [问题] 老师,我尝试着%¥#&--%--,但程序变得很多其它了.这样还会提高效率吗? [答复] 非常高兴你能问出这样的问题.这样的主动思考,在我的实体课学生中真也不多.这牵涉到我们对于效率的多维认识. 多数情况下.效率指计算机的效率.要分时间效率(用时尽可能少)和空间效率(执行中少占用内存空间).而注重时间效率的居多.

JavaScript 刚開始学习的人应知的 24 条最佳实践

原文:24 JavaScript Best Practices for Beginners (注:阅读原文的时候没有注意公布日期,认为不错就翻译了,翻译到 JSON.parse 那一节认为有点不正确路才发现是 2009 年公布的文章,只是还是不错的啦. 另外,文章虽说 24 条最佳实践,事实上仅仅有 23 条.不知道原作者怎么漏了一条. ) 1. 优先使用 ===.而不是 == JavaScript 使用两种相等性操作符:===,!== 和 ==,!=. 通常觉得做比較的最佳实践是使用前一组操作

wxWidgets刚開始学习的人导引(6)——wxWidgets学习材料清单

wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 学习材料清单 wxWidgets的官网:http://www.wxwidgets.org/downloads/ wxWidgets的下载页面:http://www.wxwidgets.org/downloads/ 在线教程<wxWidgets tutoria

開始学习swift开发

近期要開始学习swift开发了,接下来的日子,会记录学习swift的历程.

从0開始学习 GitHub 系列之「07.GitHub 常见的几种操作」

之前写了一个 GitHub 系列,反响非常不错,突然发现居然还落下点东西没写,前段时间 GitHub 也改版了,借此机会补充下. 我们都说开源社区最大的魅力是人人多能够參与进去,发挥众人的力量,让一个项目更完好.更强壮.那么肯定有人疑问,我自己眼下还没有能力开源一个项目,可是想一起參与到别的开源项目中.该怎么操作呢?那么今天,就来给大家一起介绍下 GitHub 上的一些常见的操作,看完之后你就知道方法了. 我们姑且以 Square 公司开源的 Retrofit 为例来介绍. 打开链接: http

wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 3 wxWidgets应用程序初体验 本文中全部的体验,在Code::Blocks中进行. 为了在Code::Blocks中编译执行C++写的wxWidgets程序,须要再做些设置. 首先,须要在环境变量里增加一个wxWidgets根文件夹环境变量.设置方法

Linux内核project导论——linux学习和职业曲线(刚開始学习的人,中级,高级都可參考)

Linux世界介绍 给自己定级 门外汉: 不会安装操作系统 不会用虚拟机(安装和使用) 入门级: 熟悉常见的发行版,甚至装过而且能用一些特殊发行版(比如kali)做过一些简单的图形界面的使用. 会一些最基础的命令(比如cd.ps.top.ls.ifconfig等这个级别的) 基础级: 能够使用一些常见的命令(touch.tail.date.find.du.fdisk.less.pidof等这个级别的命令) 图形界面操作的比較熟练.而且能够相应一部分的后台命令. 知道一些经常使用的配置文件的作用(