PHP判断一个字符串是否是回文字符串
代码如下 | 复制代码 |
<?php function ishuiwen($str){ $len=strlen($str); $l=1; $k=intval($len/2)+1; for($j=0;$j<$k;$j++){ if (substr($str,$j,1)!=substr($str,$len-$j-1,1)) { $l=0; break; } } if ($l==1) { return 1; } else { return -1; } } $str=12321; echo ishuiwen($str); ?> |
1.用户访问服务器时,利用PHP的超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息
代码如下 | 复制代码 |
<?php |
输出结果
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; AskTbPTV/5.17.0.25589; Alexa Toolbar)
2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息
3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等…返回给用户
我的浏览器 操作系统信息
Browser: Chrome 5.0
Platform: Windows 7
代码如下 | 复制代码 |
<?php //显示访问用户的浏览器信息 //正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息 // 同理获取访问用户的浏览器的信息 ?> |
判断浏览器语言的具体程序如下
代码如下 | 复制代码 |
<?php |
判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。
算术运算符
1、算术运算符:+、-、*、/、%。
2、递增/递减运算符:如$a++,$a--,++$a,--$a.
如:
代码如下 | 复制代码 |
<?php <?php |
三元运算符
(expr1) ? (expr2) : (expr3);
解释:如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:
代码如下 | 复制代码 |
$a>$b ? print "Yes" : ""; $a>$b ? '': print 'No'; |
应该注意的是:在使用三元运算符时,建议使用print语句替代echo语句。
注意下列一串语句的理解:
代码如下 | 复制代码 |
$str = $_GET['abc'] ? 'wangjinbo' : 'wjb'; |
这里不能理解为:当$str等于$_GET['abc'] 时,赋值为 'wangjinbo' 否则赋值为 'wjb';因为一:判断相等应该用==;因原二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;
正确理解是:当$_GET['abc']为空(也就是否,PHP中 '',null,0,undifine,都等效布尔值false)时,将$str赋值为'wangjinbo',否则赋值为'wjb';
逻辑运算符:
如:
代码如下 | 复制代码 |
$a=10;$b=7; 改变一下 $a=10;$b=7; |
细节:and && 都表示逻辑与 ,他们的区别在什么地方?
主要体现在优先级上面
and 的优先级
代码如下 | 复制代码 |
and< = <&& or < = < || 如: $a=false || true; //&& > = > and ;先比较false || true,再赋值 $b=false or true; //|| > = > or ;先赋值$b=false,再比较,所以结果是false var_dump($a,$b); //bool(true) bool(false) |
位运算符
位移在 PHP 中是数学运算。向任何方向移出去的位都被丢弃。左移时右侧以零填充,符号位被移走意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。
要用括号确保想要的优先级。例如 $a & $b == true 先进行比较再进行按位与;而 ($a & $b) == true 则先进行按位与再进行比较。
要注意数据类型的转换。如果左右参数都是字符串,则位运算符将对字符的 ASCII 值进行操作。
PHP 的 ini 设定 error_reporting 使用了按位的值,
提供了关闭某个位的真实例子。要显示除了提示级别
之外的所有错误,php.ini 中是这样用的:
E_ALL & ~E_NOTICE
具体运作方式是先取得 E_ALL 的值:
00000000000000000111011111111111
再取得 E_NOTICE 的值:
00000000000000000000000000001000
然后通过 ~ 将其取反:
11111111111111111111111111110111
最后再用按位与 AND(&)得到两个值中都设定了(为 1)的位:
00000000000000000111011111110111
另外一个方法是用按位异或 XOR(^)来取得只在
其中一个值中设定了的位:
E_ALL ^ E_NOTICE
error_reporting 也可用来演示怎样置位。只显示错误和可恢复
错误的方法是:
E_ERROR | E_RECOVERABLE_ERROR
也就是将 E_ERROR
00000000000000000000000000000001
和 E_RECOVERABLE_ERROR
00000000000000000001000000000000
用按位或 OR(|)运算符来取得在任何一个值中被置位的结果:
00000000000000000001000000000001
Example #1 整数的 AND,OR 和 XOR 位运算符
代码如下 | 复制代码 |
<?php $format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)' echo <<<EOH
$values = array(0, 1, 2, 4, 8); echo "n Bitwise AND n"; echo "n Bitwise Inclusive OR n"; echo "n Bitwise Exclusive OR (XOR) n"; --------- --------- -- --------- Bitwise Inclusive OR Bitwise Exclusive OR (XOR) |
比较运算符
如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
代码如下 | 复制代码 |
<?php switch ("a") {
|
对于多种类型,比较运算符根据下表比较(按顺序)。
运算数 1 类型 | 运算数 2 类型 | 结果 |
---|---|---|
null 或 string | string | 将 NULL 转换为 "",进行数字或词汇比较 |
bool 或 null | 任何其它类型 | 转换为 bool,FALSE < TRUE |
object | object | 内置类可以定义自己的比较,不同类不能% |
语法
要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。
代码如下 | 复制代码 |
<?php |
通常你用某些运算符返回 boolean 值,并将其传递给控制流程。
代码如下 | 复制代码 |
// == 真值判断语句 // 这样写不是必须的... // 直接写,更简单些 |
布尔类型是PHP中 最简单的类型。它的值可以为 TRUE 或 FALSE。
如:
代码如下 | 复制代码 |
$foo=false; |
这里主要的细节:
当转换为 boolean 时,以下值被认为是 FALSE :
1、the 布尔值 FALSE 自身
2、the 整型值 0 (零)
3、the 浮点型值 0.0 (零) 空 字符串, 以及 字符串 "0"
4、不包括任何元素的数组
5、不包括任何成员变量的对象(仅PHP 4.0 适用)
6、特殊类型 NULL (包括尚未设定的变量)
7、从没有任何标记(tags)的XML文档生成的SimpleXML 对象
代码如下 | 复制代码 |
//$a=0; |
输出:
bool(false)
bool(false) 空0默认转换为false,成功!
转换为布尔值
要明示地将一个值转换成 boolean,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个 boolean 参数时,该值会被自动转换。
当转换为 boolean 时,以下值被认为是 FALSE:
布尔值 FALSE
整型值 0(零)
浮点型值 0.0(零)
空白字符串和字符串 "0"
没有成员变量的数组
没有单元的对象(仅适用于 PHP 4)
特殊类型 NULL(包括尚未设定的变量)
所有其它值都被认为是 TRUE(包括任何资源)。
条件if else
if 条件语句语法
If 结构是编程语言中最常用的。其语法如下:
if (expr)
statement
其中,expr 表示条件,statement 表示符合条件后应该执行的语句。意思是,如果符合某个条件 (expr),就执行后面的语句 (statement),如果不符合条件,则什么也不做。
示例如下:
代码如下 | 复制代码 |
<?phpif ($a > $b) echo "a is bigger than b";?> |
上面的示例意思是,如果变量 $a > $b ,则输出 "a is bigger than b",反之,则什么也不做。
符合 if 条件后,如果要执行的语句不止一行,则需要用大括号 {} 将多行语句围起来。示例如下:
代码如下 | 复制代码 |
<?phpif ($a > $b) { echo "a is bigger than b"; $b = $a;}?> |
这个例子的意思是,如果变量 $a > $b ,则输出 "a is bigger than b",并且将 $a 赋值给 $b
在php中我们要删除一个指定的文件我们可以使用unlink函数来实现,下面我给大家详细介绍unlink函数删除一个指定文件的具体方法,有需要了解的朋友可参考参考。unlink() 函数删除文件。
若成功,则返回 true,失败则返回 false。
代码如下 | 复制代码 |
<?php |
例
代码如下 | 复制代码 |
<?php |
加上判断
代码如下 | 复制代码 |
<?php |
输出结果:
文件 test.txt 删除成功!
下面加了判断文件是否存在:
代码如下 | 复制代码 |
<?php $myfile = “./test1.txt”; |
rmdir() 函数删除一个目录,成功返回 TRUE,否则返回 FALSE 。
语法:
bool rmdir( string dirname )
例子:
代码如下 | 复制代码 |
<?php |
相关文章
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 今天在写一个vbs的时候,发现中文乱码,后来写好代码正常运行的代码压缩一下给了同事,发现报无效字符,经过验证后发现原来是编码的问题导致,这里就为大家分享一下...2020-06-30
- 使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 下面小编就为大家分享一篇c# 判断是否为空然后赋值的4种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
- 具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
废话不多说了,直接给大家贴代码了。<?php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24- 这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06