1.从哪个页面来,返回就到那个页面去。用到str_replace函数。
define(SINA_LOGIN_URL,'http://weibosina/'); define(TX_LOGIN)URL,'http://weibotx/'); $referer_from =str_replace(array(SINA_LOGIN_URL,TX_LOGIN_URL), '', $_SERVER['HTTP_REFERER']); $S->assign('return_back',$referer_from);
$_SERVER['HTTP_REFERER']表示从哪个页面跳转过来的。str_replace在这里替换成具体的那个页面比如:http://weibosina/login.php这个页面跳转走的。那么$referer_from = login.php了。
2.获取浏览器类型
通过$_SERVER["HTTP_USER_AGENT"]来识别:
public function index() { $browser = 'other'; if(strpos($_SERVER["HTTP_USER_AGENT"], "TheWorld") || strpos($_SERVER["HTTP_USER_AGENT"], "QIHU THEWORLD")){ $browser = 'world'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "Maxthon")){ $browser = 'aoyou'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "TencentTraveler")){ // or (strpos($_SERVER["HTTP_USER_AGENT"], "Trident") AND strpos($_SERVER["HTTP_USER_AGENT"], "SLCC2")) $browser = 'telcent'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "SE 2") AND strpos($_SERVER["HTTP_USER_AGENT"], "MetaSr")){ $browser = 'sogou'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "360SE") AND !strpos($_SERVER["HTTP_USER_AGENT"], "TencentTraveler")){ $browser = '360'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "QIHU 360EE") AND !strpos($_SERVER["HTTP_USER_AGENT"], "TencentTraveler")){ $browser = '360'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE 9.0")){ $browser = 'ie9'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE 8.0")){ $browser = 'ie8'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE 7.0")){ $browser = 'ie7'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "MSIE 6.0")){ $browser = 'ie6'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "Firefox")){ $browser = 'firefox'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "Chrome")){ $browser = 'chrome'; }elseif(strpos($_SERVER["HTTP_USER_AGENT"], "Safari")){ $browser = 'safari'; } redirect("/start/$browser");exit; }
3.中英文混合截取指定长度。
有一些自己写的函数,来实现完美截取,但是比较麻烦,繁琐。
如果精确度不需要太高的话那就用系统自带的mb_substr()函数好了:
mb_substr('我们123a好', 0, 6,'utf-8'); //输出:我们123a
'utf-8' 一定要加上去
他没有把中文算成2个字符,所有的算成1个字符,这对于有中英文混合的字符串,只需要截图前6位,这样的例子来说,非常实用。
4 获取url后缀
一个内置函数搞定:
7.换行符
unix系列用 \n
windows系列用 \r\n
mac用 \r
PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性
如:
<?php echo PHP_EOL; //windows平台相当于 echo "\r\n"; //unix\linux平台相当于 echo "\n"; //mac平台相当于 echo "\r"; ?>
类似常用的还有
DIRECTORY_SEPARATOR
可以用函数get_defined_constants()来获取所有PHP常量
8 define 一个常量
define(ROOT,direname(_FILE__)); echo ROOT;
上面输出的确可以输出ROOT的值,但是也会有一个警告:
Use of undefined constant ROOT - assumed 'ROOT'
所以,定义常量时,一定要加个引号。
define('ROOT',direname(_FILE__)); echo ROOT;
9 数组装换成带引号的字符串
$row = array('ayi','太原','hello',78); $b = "'".implode( "','", $row ) . "'"; var_dump($b); // "'ayi','太原','hello','78'"
5.等于与全等于
==、=== 对应的是!=和!==。没有!=== 啊,混蛋!
6. 子frame如何跳出自身的框架,执行父框架的操作。
用parent.xx.xx 执行。