首页 > 代码库 > php入门(二)

php入门(二)

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px "Helvetica Neue"; color: #323333 } span.s1 { }</style>

PHP字符串变量:

 

1.PHP strlen() 函数

<?php
$str1="abcd";
$str2="efgh";
$str=$str1.$str2;
echo strlen("$str");
?>

 注意strlen();里面必须要有双引号。

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 22.0px "Helvetica Neue"; color: #323333 } span.s1 { }</style>

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() 函数用于创建数组:

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 关联数组

关联数组是使用您分配给数组的指定的键的数组。

这里有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or:

$age[‘Peter‘]="35";
$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:

实例

<?php 
$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中的元素:

实例

<?php 
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 字段数据:

实例

<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 循环 - 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);
?>

输出:

1 + 16 = 17

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 


PHP面向对象:

var就是public的别名。

<?php
class Site {
  /* 成员变量 */
  var $url;
  var $title;
  
  /* 成员函数 */
  function setUrl($par){
     $this->url = $par;
  }
  
  function getUrl(){
     echo $this->url . PHP_EOL;
  }
  
  function setTitle($par){
     $this->title = $par;
  }
  
  function getTitle(){
     echo $this->title . PHP_EOL;
  }
}
?>
变量 $this 代表自身的对象。
PHP_EOL 为换行符。

  

 

 

 

 

php入门(二)