php入门(二)
PHP字符串变量:
1.PHP strlen() 函数
<?php $str1="abcd"; $str2="efgh"; $str=$str1.$str2; echo strlen($str); ?>
注意strlen();里面必须要有双引号。
1.双引号之间的字符是需要php解析的,包括$,\,{都保留了php赋予的特殊含义。
2." "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出;而' '单引号里面的不进行解释,直接输出。
2.PHP strpos() 函数
<?php $str1="abcd"; $str2="c"; $str=$str1.$str2; echo strpos($str,$str2); ?>
后面的在前面的位置
在第一字符串查找第二个字符串。
3.PHP 的string 函数:
可以参考这里:http://www.runoob.com/php/php-ref-string.html
绿色的是我觉得有用的。。。
函数 | 描述 |
---|---|
addcslashes() | 返回在指定的字符前添加反斜杠的字符串。 |
addslashes() | 返回在预定义的字符前添加反斜杠的字符串。 |
bin2hex() | 把 ASCII 字符的字符串转换为十六进制值。 |
chop() | 移除字符串右侧的空白字符或其他字符。 |
chr() | 从指定 ASCII 值返回字符。 |
chunk_split() | 把字符串分割为一连串更小的部分。 |
convert_cyr_string() | 把字符串由一种 Cyrillic 字符集转换成另一种。 |
convert_uudecode() | 对 uuencode 编码的字符串进行解码。 |
convert_uuencode() | 使用 uuencode 算法对字符串进行编码。 |
count_chars() | 返回字符串所用字符的信息。 |
crc32() | 计算一个字符串的 32 位 CRC(循环冗余校验)。 |
crypt() | 单向的字符串加密法(hashing)。 |
echo() | 输出一个或多个字符串。 |
explode() | 把字符串打散为数组。 |
fprintf() | 把格式化的字符串写入到指定的输出流。 |
get_html_translation_table() | 返回 htmlspecialchars() 和 htmlentities() 使用的翻译表。 |
hebrev() | 把希伯来(Hebrew)文本转换为可见文本。 |
hebrevc() | 把希伯来(Hebrew)文本转换为可见文本,并把新行(\n)转换为 <br>。 |
hex2bin() | 把十六进制值的字符串转换为 ASCII 字符。 |
html_entity_decode() | 把 HTML 实体转换为字符。 |
htmlentities() | 把字符转换为 HTML 实体。 |
htmlspecialchars_decode() | 把一些预定义的 HTML 实体转换为字符。 |
htmlspecialchars() | 把一些预定义的字符转换为 HTML 实体。 |
implode() | 返回一个由数组元素组合成的字符串。 |
join() | implode() 的别名。 |
lcfirst() | 把字符串中的首字符转换为小写。 |
levenshtein() | 返回两个字符串之间的 Levenshtein 距离。 |
localeconv() | 返回本地数字及货币格式信息。 |
ltrim() | 移除字符串左侧的空白字符或其他字符。 |
md5() | 计算字符串的 MD5 散列。 |
md5_file() | 计算文件的 MD5 散列。 |
metaphone() | 计算字符串的 metaphone 键。 |
money_format() | 返回格式化为货币字符串的字符串。 |
nl_langinfo() | 返回指定的本地信息。 |
nl2br() | 在字符串中的每个新行之前插入 HTML 换行符。 |
number_format() | 通过千位分组来格式化数字。 |
ord() | 返回字符串中第一个字符的 ASCII 值。 |
parse_str() | 把查询字符串解析到变量中。 |
print() | 输出一个或多个字符串。 |
printf() | 输出格式化的字符串。 |
quoted_printable_decode() | 把 quoted-printable 字符串转换为 8 位字符串。 |
quoted_printable_encode() | 把 8 位字符串转换为 quoted-printable 字符串。 |
quotemeta() | 引用元字符。 |
rtrim() | 移除字符串右侧的空白字符或其他字符。 |
setlocale() | 设置地区信息(地域信息)。 |
sha1() | 计算字符串的 SHA-1 散列。 |
sha1_file() | 计算文件的 SHA-1 散列。 |
similar_text() | 计算两个字符串的相似度。 |
soundex() | 计算字符串的 soundex 键。 |
sprintf() | 把格式化的字符串写入一个变量中。 |
sscanf() | 根据指定的格式解析来自一个字符串的输入。 |
str_getcsv() | 把 CSV 字符串解析到数组中。 |
str_ireplace() | 替换字符串中的一些字符(大小写不敏感)。 |
str_pad() | 把字符串填充为新的长度。 |
str_repeat() | 把字符串重复指定的次数。 |
str_replace() | 替换字符串中的一些字符(大小写敏感)。 |
str_rot13() | 对字符串执行 ROT13 编码。 |
str_shuffle() | 随机地打乱字符串中的所有字符。 |
str_split() | 把字符串分割到数组中。 |
str_word_count() | 计算字符串中的单词数。 |
strcasecmp() | 比较两个字符串(大小写不敏感)。 |
strchr() | 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。) |
strcmp() | 比较两个字符串(大小写敏感)。 |
strcoll() | 比较两个字符串(根据本地设置)。 |
strcspn() | 返回在找到任何指定的字符之前,在字符串查找的字符数。 |
strip_tags() | 剥去字符串中的 HTML 和 PHP 标签。 |
stripcslashes() | 删除由 addcslashes() 函数添加的反斜杠。 |
stripslashes() | 删除由 addslashes() 函数添加的反斜杠。 |
stripos() | 返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。 |
stristr() | 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。 |
strlen() | 返回字符串的长度。 |
strnatcasecmp() | 使用一种"自然排序"算法来比较两个字符串(大小写不敏感)。 |
strnatcmp() | 使用一种"自然排序"算法来比较两个字符串(大小写敏感)。 |
strncasecmp() | 前 n 个字符的字符串比较(大小写不敏感)。 |
strncmp() | 前 n 个字符的字符串比较(大小写敏感)。 |
strpbrk() | 在字符串中搜索指定字符中的任意一个。 |
strpos() | 返回字符串在另一字符串中第一次出现的位置(大小写敏感)。 |
strrchr() | 查找字符串在另一个字符串中最后一次出现。 |
strrev() | 反转字符串。 |
strripos() | 查找字符串在另一字符串中最后一次出现的位置(大小写不敏感)。 |
strrpos() | 查找字符串在另一字符串中最后一次出现的位置(大小写敏感)。 |
strspn() | 返回在字符串中包含的特定字符的数目。 |
strstr() | 查找字符串在另一字符串中的第一次出现(大小写敏感)。 |
strtok() | 把字符串分割为更小的字符串。 |
strtolower() | 把字符串转换为小写字母。 |
strtoupper() | 把字符串转换为大写字母。 |
strtr() | 转换字符串中特定的字符。 |
substr() | 返回字符串的一部分。 |
substr_compare() | 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。 |
substr_count() | 计算子串在字符串中出现的次数。 |
substr_replace() | 把字符串的一部分替换为另一个字符串。 |
trim() | 移除字符串两侧的空白字符和其他字符。 |
ucfirst() | 把字符串中的首字符转换为大写。 |
ucwords() | 把字符串中每个单词的首字符转换为大写。 |
vfprintf() | 把格式化的字符串写到指定的输出流。 |
vprintf() | 输出格式化的字符串。 |
vsprintf() | 把格式化字符串写入变量中。 |
wordwrap() | 按照指定长度对字符串进行折行处理。 |
4.PHP 运算符
<?php $x=10; $y=6; echo ($x + $y ."\n");//输出16 echo ($x - $y ."\n"); // 输出4 echo ($x * $y."\n"); // 输出60 echo ($x / $y."\n"); // 输出1.6666666666667 echo ($x % $y."\n"); //输出4 ?>
在这里的除法是可以输出余数的1.66667
以下是:
+=
-+
.=
<?php $x=10; echo $x; // 输出10 $y=20; $y += 100; echo $y; // 输出120 $z=50; $z -= 25; echo $z; // 输出25 $i=5; $i *= 6; echo $i; // 输出30 $j=10; $j /= 5; echo $j; // 输出2 $k=15; $k %= 4; echo $k; // 输出3 ?>
自增自减
<?php $x=10; echo ++$x."\n"; // 输出11 $y=10; echo $y++."\n"; // 输出10 $z=5; echo --$z."\n"; // 输出4 $i=5; echo $i--."\n"; // 输出5 ?>
<?php $x=100; $y="100"; var_dump($x == $y."\n"); // 值是否相等 var_dump($x === $y."\n"); // 值是否相等并且并且类型是否相等 var_dump($x != $y."\n"); // var_dump($x !== $y."\n"); //检查指和类型 $a=50; $b=90; var_dump($a > $b); echo "<br>"; var_dump($a < $b); ?>
输出:bool(ture);
bool(false);
PHP 数组运算符
运算符 | 名称 | 描述 |
---|---|---|
x + y | 集合 | x 和 y 的集合 |
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("a" => "red");
这里就相当于c++的map键和值
var_dump();是输出类型(值)
<?php $x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // union of $x and $y var_dump($z); echo "<br>"; var_dump($x == $y); echo "<br>"; var_dump($x === $y); echo "<br>"; var_dump($x != $y); echo "<br>"; var_dump($x <> $y); echo "<br>"; var_dump($x !== $y); ?>
PHP If...Else 语句
data()函数复习下:
data("H")//代表小时
data("i")//代表分钟
data("j")//代表月份
data("Y")//代表年
<?php $t=date("i"); if ($t>"20") { echo "Have a good day!"; } else{ echo "no"; } ?>
switch()
这里想强调switch()括号里的参数需要加上$ 变量虽然没有类型,但是需要在变量前加上$,为了区分常量和变量。
<?php
$t=date("H");
switch($t){
case $t>12:
{
echo "over 12";
break;
}
case $t<12:
{
echo "less than 12";
break;
}
default:
echo "it is wrong";
}
?>
case 后面要有:
在 PHP 中创建数组:
在 PHP 中,array() 函数用于创建数组:
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
$cars=array("Volvo","BMW","Toyota");
$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";
获取数组的长度 - count() 函数并且遍历数组for
<?php
$cars=array("Volvo","BMW","Toyota");
$strln=count($cars);
for($i=0;$i<$strln;$i++){
echo($cars[$i]."\n");
}
?>
PHP 关联数组
关联数组是使用您分配给数组的指定的键的数组。
这里有两种创建关联数组的方法:
or:
$age['Ben']="37";
$age['Joe']="43";
遍历关联数组:
<?php $map=array( "lidan" => 20,"xuhao" =>21,"shiyue" => 22); foreach ($map as $name => $yearsold) { // code... echo $name.":".$yearsold."\n"; } ?>
PHP 数组排序:
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列 reduce
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列key
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
三、print_r 函数
print_r函数打印关于变量的易于理解的信息。
语法:mixed print_r ( mixed $expression [, bool return ] )
- 如果变量是string , integer or float , 将会直接输出其值
- 如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。
- 对于object对象类同。print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。
所以
<?php $age=array("Bill"=>"60","Steve"=>"56","Mark"=>"31"); arsort($age); print_r($age); ?>
输出:
Array ( [Bill] => 60 [Steve] => 56 [Mark] => 31 )
PHP 超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
- $_SESSION
本章节我们将讲解几个常用的超级全局变量,其余变量我们在接下来几个章节会介绍到。
以下实例介绍了如何使用超级全局变量 $GLOBALS:
实例
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z; //输出100,由于是全局变量可以在函数外面访问
?>
PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。
以下实例中展示了如何使用$_SERVER中的元素:
实例
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
元素/代码 | 描述 |
---|---|
$_SERVER['PHP_SELF'] | 当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将得到 /test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。 |
$_SERVER['GATEWAY_INTERFACE'] | 服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。 |
$_SERVER['SERVER_ADDR'] | 当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] | 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。(如: www.runoob.com) |
$_SERVER['SERVER_SOFTWARE'] | 服务器标识字符串,在响应请求时的头信息中给出。 (如:Apache/2.2.24) |
$_SERVER['SERVER_PROTOCOL'] | 请求页面时通信协议的名称和版本。例如,"HTTP/1.0"。 |
$_SERVER['REQUEST_METHOD'] | 访问页面使用的请求方法;例如,"GET", "HEAD","POST","PUT"。 |
$_SERVER['REQUEST_TIME'] | 请求开始时的时间戳。从 PHP 5.1.0 起可用。 (如:1377687496) |
$_SERVER['QUERY_STRING'] | query string(查询字符串),如果有的话,通过它进行页面访问。 |
$_SERVER['HTTP_ACCEPT'] | 当前请求头中 Accept: 项的内容,如果存在的话。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:"iso-8859-1,*,utf-8"。 |
$_SERVER['HTTP_HOST'] | 当前请求头中 Host: 项的内容,如果存在的话。 |
$_SERVER['HTTP_REFERER'] | 引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。) |
$_SERVER['HTTPS'] | 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。 |
$_SERVER['REMOTE_ADDR'] | 浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] | 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。 |
$_SERVER['REMOTE_PORT'] | 用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] | 当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。(如:someone@runoob.com) |
$_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 "80"。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。 |
$_SERVER['SERVER_SIGNATURE'] | 包含了服务器版本和虚拟主机名的字符串。 |
$_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。 |
$_SERVER['SCRIPT_NAME'] | 包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。 |
$_SERVER['SCRIPT_URI'] | URI 用来指定要访问的页面。例如 "/index.html"。 |
PHP $_REQUEST
PHP $_REQUEST 用于收集HTML表单提交的数据。
以下实例显示了一个输入字段(input)及提交按钮(submit)的表单(form)。
当用户通过点击 "Submit" 按钮提交表单数据时, 表单数据将发送至<form>标签中 action 属性中指定的脚本文件。
在这个实例中,我们指定文件来处理表单数据。如果你希望其他的PHP文件来处理该数据,你可以修改该指定的脚本文件名。
然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:
实例
<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 循环 - While 循环
环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。
PHP 循环
- while -
- do...while
- for - 循环执行代码块指定的次数
- foreach - 根据数组中每个元素来循环代码块
foreach 循环
foreach 循环用于遍历数组。
可以想成把前面的影射到后面的
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
<html> <body> <?php $x=array("one","two","three"); foreach ($x as $value) { echo $value . "<br>"; } ?> </body> </html>
或者
<?php $map=array( "lidan" => 20,"xuhao" =>21,"shiyue" => 22); foreach ($map as $name => $yearsold) { // code... echo $name.":".$yearsold."\n"; } ?>
PHP 函数 - 添加参数
function functionName()
{
要执行的代码;
}
函数没有返回值,关键字是function
<?php function myfun($year1){ if($year1>2000){ echo "good"; } else{ echo "no"; } } myfun(2011); ?>
PHP 函数 - 返回值
如需让函数返回一个值,请使用 return 语句。
实例
<?php function add($x,$y) { $total=$x+$y; return $total; } echo "1 + 16 = " . add(1,16); ?>
输出:
PHP 魔术变量:
这个变量好好玩啊~哇哈哈~
__LINE__
文件中的当前行号。
实例:
<?php
echo '这是第 “ ' . __LINE__ . ' ” 行';
?>
以上实例输出结果为:
这是第 “ 2 ” 行
__FILE__
文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
实例:
<?php
echo '该文件位于 “ ' . __FILE__ . ' ” ';
?>
以上实例输出结果为:
该文件位于 “ E:\wamp\www\test\index.php ”
__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
<?php
echo '该文件位于 “ ' . __DIR__ . ' ” ';
?>
以上实例输出结果为:
该文件位于 “ E:\wamp\www\test ”