php中字符串比较方法

 更新时间:2016年11月25日 15:07  点击:1986
本文章介绍了一两种在php中字符比较方法一种是==号,一种是strcmp函数进行字符串相等比较,有需要的朋友可以参考下。

利用函数strcmp()函数字符串进行比较


int strcmp(string str1,string str2))
参数str1和参数str2制定要比较的两个字符串,如果相等则返回0;如果参数str1大于参数str2则返回值大于0;如果参数str1小于参数str2则返回值小于0。

实例:

 代码如下 复制代码
<?php
$str1=”a”;    //定义字符串常量
$str2=”b”;    //定义字符串常量
$str3=”ccc”;          //定义字符串常量
$str4=”CCC”;          //定义字符串常量
echo strcmp($str1,$str2);//这两个字符串相等
echo strcmp($str3,$str4);//注意该函数区分大小写
?>

注意:该函数区分字母大小写。

利用==进行比较

 代码如下 复制代码

$a = "joe";
$b = "jerry";
if ($a != $b)
{
    echo "不相等";
}
else
{
    echo "相等";
}

更多详细内容请查看:http://www.111cn.net/phper/php-function/35413.htm

在任何开发语言中都会有一些自己的变量这些称系统变量或环境变量,有需要的朋友参考一下。

PHP环境变量主要有$GLOBALS[]、$_SERVER[]、$_GET[]、$_POST[]、$_COOKIE[]、$_FILES[]、$_ENV[]、$_REQUEST[]、$_SESSION[]。$_GET和$_POST主要针对FORM表单提交的数据,$_COOKIE和$_SESSION主要针对客户端游览器和服务器端会话数据。$_FILES主要针对文件上传时提交的数据,$_REQUEST主要针对提交表单中所有请求数组,包括$_GET、$_POST、$_COOKIE中的所有内容,你可以通过print_r函数分别输出$_REQUEST或者$_COOKIE等进行比较。

         $_SERVER变量
是一个包含服务器端相关信息的PHP全局环境变量,在PHP4.1.0之前的版本使用$HTTP_SERVER_VARS。


$_SERVER['PHP_SELF']

#当前正在执行脚本的文件名,与 document root相关。在FORM表单中,如执行文件是本身,你可以在ACTION中使用

$_SERVER['QUERY_STRING']

#获取查询语句,即获取的是url串中’?'后面的值

$_SERVER['DOCUMENT_ROOT']

#当前运行脚本所在的文档根目录。在服务器配置文件中定义。

$_SERVER['HTTP_ACCEPT']

#当前请求的 Accept: 头部的内容。

$_SERVER['HTTP_ACCEPT_CHARSET']

#当前请求的 Accept-Charset: 头部的内容。例如:“iso-8859-1,*,utf-8”。

$_SERVER['HTTP_ACCEPT_ENCODING']

#当前请求的 Accept-Encoding: 头部的内容。例如:“gzip”。

$_SERVER['HTTP_ACCEPT_LANGUAGE']

#当前请求的 Accept-Language: 头部的内容。例如:“en”。

$_SERVER['HTTP_CONNECTION']

#当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。

$_SERVER['HTTP_HOST']

#当前请求的 Host: 头部的内容。

 $_SERVER['HTTP_REFERER']

#链接到当前页面的前一页面的 URL 地址。

$_SERVER['HTTP_USER_AGENT']

#当前请求的 User_Agent: 头部的内容。

$_SERVER['SERVER_NAME']

         #当前运行的PHP程序所在服务器主机的名称。

$_SERVER['REQUEST_METHOD']

#访问页面时的请求方法,即GET、HEAD、POST、PUT。

$_SERVER['DOCUMENT_ROOT']

#当前运行的PHP程序所在的文档根目录。也就是PHP.INI文件中的定义。

$_SERVER['HTTP_REFERER']

#链接到当前页面的前一页面的URL地址。在页面跳转功能中非常有用。

$_SERVER['REMOTE_ADDR']

#正在浏览当前页面访问者的IP地址。

$_SERVER['REMOTE_HOST']

#正在浏览当前页面用户的主机名。

$_SERVER['REMOTE_PORT']

#正在游览的用户连接到服务器时所使用的端口。

$_SERVER['SCRIPT_FILENAME']

#当前执行脚本的绝对路径名。

$_SERVER['SERVER_PORT']

#服务器所使用的端口

$_SERVER['SCRIPT_NAME']

#包含当前脚本的路径。这在页面需要指向自己时非常有用。

$_SERVER['REQUEST_URI']

#访问此页面所需的URI。如“/index.html”。

$_SERVER['PHP_AUTH_USER']

#应用在HTTP用户登录认证功能中,这个变量是用户输入的用户名。

$_SERVER['PHP_AUTH_PW']

#应用在HTTP用户登录认证功能中,这个变量便是用户输入的密码。

$_SERVER['AUTH_TYPE']

#应用在HTTP用户登录认证功能中,这个变量便是认证的类型。

$_SERVER['SERVER_SOFTWARE']
#服务器标识的字串,在响应请求时的头部中给出。

  系统常量
__FILE__ 当前PHP程序脚本的绝对路径及文件名称

__LINE__ 存储该常量所在的行号

__FUNCTION__ 存储该常量所在的函数名称

__CLASS__ 存储该常量所在的类的名称

PHP_VERSION 存储当前PHP的版本号,也可以通过PHPVERSION()函数获取。

PHP_OS 存储当前服务器的操作系统

在php中循环语句我们常用的就几种,while,do while ,for(),foreach这四种,也是大家开发中常用到的循环语句了,有需要的朋友可以参考一下,本教程一一来讲一下这种语句的用法。

Foreach语句
Foreach循环是php4.0引进来的,只能用于数组。在php5中,又增加了对对象的支持。该语句的语法格式为:
foreach(array_expression as $value)
statement;

 代码如下 复制代码

Foreach(array_expression as $key => $value)
statement;


FOREACH ($array_variable as $value)
{
  [code to execute]
}

or

FOREACH ($array_variable as $key => $value)
{
  [code to execute]
}

在这两种情况下,多次[代码执行]将被处死是等于在$ array_variable数组元素的个数。

让我们来看一个例子。假设我们有下面的代码段:

 

 代码如下 复制代码

$array1 = array(1,2,3,4,5);
FOREACH ($array1 as $abc)
{
  print "new value is " . $abc*10 . "<br>";
}

输出结果

new value is 10
new value is 20
new value is 30
new value is 40
new value is 50

foreach循环以上经历了所有5个元素的数组$ array1,每次打印出一份声明中含有10倍的数组元素的值。
foreach作用是遍历当前数组的所有值出来并且赋给$var

再来看一个foreach 对多维数据操作实例

 代码如下 复制代码

 $s = array(array(1,2),array(3,4),array(5,6));
 foreach( $s as $v => $_v )
  {
   foreach( $_v as $vc => $_vc )
   {
    echo $_vc[0],'|'.$_vc[1],'<br />';
   //print_r($_vc);
   }
  }


更多详细内容请查看:http://www.111cn.net/phper/18/foreach-foreach.htm


for语句

最基于的遍历

 代码如下 复制代码

<?php
/* example 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* example 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* example 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* example 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>


遍历数组

 代码如下 复制代码

<?php
/*
* This is an array with some data we want to modify
* when running through the for loop.
*/
$people = Array(
        Array('name' => 'Kalle', 'salt' => 856412),
        Array('name' => 'Pierre', 'salt' => 215863)
        );

for($i = 0; $i < sizeof($people); ++$i)
{
    $people[$i]['salt'] = rand(000000, 999999);
}
?>

下面再看while 与do while
While循环是php中最简单的循环语句,他的语法格式是:

 代码如下 复制代码
While (expression){
statement;
}

当表达式expression的值为真时,将执行statement语句,执行结束后,再返回到expression表达式继续进行判断。直到表达式的值为假时,才跳出循环。

 

 代码如下 复制代码

<?php
/* example 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* the printed value would be
                   $i before the increment
                   (post-increment) */
}

/* example 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>


Do…While语句
While语句还有一种形式的表示,Do…While.语法为:
Do{
statement;
}While(expression);
两者的区别在于:Do…While语句要比While语句多循环一次。
当While表达式的值为假时,While循环直接跳出当前循环,而Do…While语句则是先执行一遍程序块,然后再对表达式进行判断。


实例

 代码如下 复制代码

<?php
do {
    if ($i < 5) {
        echo "i is not big enough";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "i is ok";

    /* process i */

} while (0);
?>

本文章要讲到了php 两种流程判断语句,有switch语句和if else ,if()语句,下面我们来详细的看看实例吧。

 

 代码如下 复制代码
switch(variable){
case value1:
statement1;
break;
case value2:

default:
defulat statement;
}

switch语句根据variable的值,依次与case中的value值相比较,如果不相等,继续查找下一个
case;如果相等,就执行对应的语句,直到switch语句结束或者遇见break为止。

 代码如下 复制代码
<?php
switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
}
?>

实例二

 代码如下 复制代码

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
}
?>


实例三

 代码如下 复制代码

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i is less than 3 but not negative";
    break;
case 3:
    echo "i is 3";
}
?>

if…else语句只能选择两种结果:要么执行真,要么执行假。但现在有2种以上的选择该怎么办
呢?这时,可以使用esleif(也可以写作else if)语句来执行,该语法格式为:

 代码如下 复制代码
if(expression1){
statement1;
}else if(expression2){
statement2;
}

else{
statementn;
}

实例

 代码如下 复制代码
<?php
$moth = date(“n”);
$today = date(“j”);
if($today >= 1and $today <= 10){
echo’今天是’.$moth.’月’.$today.’日上旬’;
}elseif ($today >10 and $today <=20){
echo’今天是’.$moth.’月’.$today.’日中旬’;
}else{
echo’今天是’.$moth.’月’.$today.’日下旬’;
}
?>

如果当前日期是周五,下面的例子会输出 "Have a nice weekend!",如果是周日,则输出 "Have a nice Sunday!",否则输出 "Have a nice day!":

 代码如下 复制代码

<html>
<body>

<?php
$d=date("D");
if ($d=="Fri")
  echo "Have a nice weekend!";
elseif ($d=="Sun")
  echo "Have a nice Sunday!";
else
  echo "Have a nice day!";
?>

</body>
</html>

在php中list函数的作用是把数组中的值赋给一些变量,这样在简单的数据操作时我们就可以利用list来实现 哦,有需的可以参考一下。

注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

例子 1. list() 例子

 代码如下 复制代码
<?php
 
$info = array('coffee', 'brown', 'caffeine');
 
// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.n";
 
// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.n";
 
// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!n";
 
?>

例子 2. 使用 list() 的例子

 代码如下 复制代码
<table>
<tr>
  <th>Employee name</th>
  <th>Salary</th>
</tr>
 
<?php
 
$result = mysql_query("SELECT id, name, salary FROM employees",$conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
    echo " <tr>n".
         "  <td><a href="info.php?id=$id">$name</a></td>n".
         "  <td>$salary</td>n".
         " </tr>n";
}
 
?>
 
</table>

警告
list() 从最右边一个参数开始赋值。如果你用单纯的变量,不用担心这一点。但是如果你用了具有索引的数组,通常你期望得到的结果和在 list() 中写的一样是从左到右的,但实际上不是。是以相反顺序赋值的。

例子 3. 在 list() 中使用数组索引

 代码如下 复制代码
<?php
$info = array('coffee', 'brown', 'caffeine');
list($a[0], $a[1], $a[2]) = $info;
var_dump($a);
?>

产生如下输出(注意单元顺序和 list() 语法中所写的顺序的比较):

 代码如下 复制代码

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

[!--infotagslink--]

相关文章

  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • c#中判断字符串是不是数字或字母的方法

    这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
  • PostgreSQL判断字符串是否包含目标字符串的多种方法

    这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
  • 详解C++ string常用截取字符串方法

    这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • php字符串按照单词逐个进行反转的方法

    本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • 运行vbs脚本报错无效字符、中文乱码的解决方法(编码问题)

    今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25