1.将字符串转换成小写
strtolower()(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串
2.将字符转成大写
strtoupper()(): 该函数的作用同strtolower函数相反,是将传入的字符参数的字符全部转换成大写,并以大写的形式返回这个字符串.用法同strtolowe()一 样。
第一个词首字母小写lcfirst()。
例如:
<?php $foo = 'HelloWorld'; $foo = lcfirst($foo); // helloWorld $bar = 'HELLO WORLD!'; $bar = lcfirst($bar); // hELLO WORLD! $bar = lcfirst(strtoupper($bar)); // hELLO WORLD! ?>
3.将字符串首字符转换成大写
ucfirst()(): 该函数的作用是将字符串的第一个字符改成大写,该函数返回首字符大写的字符串。用法同strtolowe()一样。
第一个词首字母变大写:ucfirst()
例如:
<?php $foo = 'hello world!'; $foo = ucfirst($foo); // Hello world! $bar = 'HELLO WORLD!'; $bar = ucfirst($bar); // HELLO WORLD! $bar = ucfirst(strtolower($bar)); // Hello world! ?>
4.将字符串每个单词的首字符转换成大写
ucwords()(): 该函数将传入的字符串的每个单词的首字符变成大写。如"hello world",经过该函数处理后,将返回"Hello Word"。用法同strtolowe()一样。
首字母变大写:ucwords()
例如:
<?php $foo = 'hello world!'; $foo = ucwords($foo); // Hello World! $bar = 'HELLO WORLD!'; $bar = ucwords($bar); // HELLO WORLD! $bar = ucwords(strtolower($bar)); // Hello World! ?>
问题描述:
单纯开启url伪静态,不开启gzip,网站正常;
单纯开启gzip,不开启url伪静态,网站正常;
同时开启url伪静态和gzip,网站无法正常显示,有时显示不出内容,刷新后自动refresh等等问题。
解决办法,如下:
1、修改服务器设置法:
到服务器里,从php.ini找出:zlib.output_compression 这条,把zlib.output_compression = On 改成 zlib.output_compression = Off
保存,然后重启apache或IIS即可。
2、修改网站程序法:
使用虚拟主机,无法修改 php.ini 的,暂时修改方法,可以在网站的公共文件或初始化文件中加入:
! ini_get('zlib.output_compression') ? ob_start('ob_gzhandler') : ob_start();
分析:
开启 zlib.output_compression 相当于给每个PHP程序开头加上了ob_start("ob_gzhandler");这条语句。
虽然 zlib.output_compression和ob_gzhandler还是有区别的。zlib.output_compression是和PHP脚 本解析程序并行的一个线程,当PHP输入时,这边读入,压缩,而已经压缩好的文档达到一定数量(默认是4k),它就向浏览器发送数据。
而 ob_gzhandler则是在PHP脚本执行完所有代码才把缓存好的输出文件进行压缩并传输给浏览器,所以相对慢一点,但原理是相同的。
而在后台开启 gzip 功能后,会不加判断地强制运行头部的 ob_start("ob_gzhandler") 语句,这样相当于程序同时运行了两条 ob_start("ob_gzhandler") 语句,造成无法正常执行并显示出页面内容。
因此,建议正常情况下php.ini里zlib.output_compression设置为 Off 状态,这是由于程序员会不加判断地添加 ob_start("ob_gzhandler") 语句。
随着网站的发展壮大,会出现一定数量的子域名中,此时就会出现跨域登录的问题。
比如,有两个域名,想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能。
为测试方便,先编辑hosts文件,加入测试域名(C:\WINDOWS\system32\drivers\etc\hosts)
127.0.0.1 www.b.com
首先:创建 a_setcookie.php 文件:
//header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
?>
然后:创建 a_getcookie.php 文件:
var_dump($_COOKIE);
?>
最后:创建 b_setcookie.php 文件:
三个文件创建完毕后,通过浏览器依次访问:
http://www.a.com/a_getcookie.php
在访问b.com域时,并没有在a.com域设置上cookie值。
然后,修改一下a_setcookie.php文件,去掉注释符号,a_setcookie.php即为:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
setcookie("test", $_GET['id'], time()+3600, "/", ".a.com");
?>
再次通过浏览器依次访问:
http://www.a.com/a_getcookie.php
看看是不是已经实践跨域的访问了。
您可能感兴趣的文章:
PHP防止跨域提交表单的解决方法
php使用P3P实现跨域的方法分享
http与https跨域共享session的解决方法
php中json的跨域实例分析
php session跨域跨服务器的解决方法分享
php 跨域、跨子域,跨服务器读取session的方法介绍
php的json格式和js跨域调用的代码
php JSON 跨域调用数据的例子