PHP中合并两个数组array_merge()函数介绍
用法
array array_merge ( array $array1 [, array $array2 [, array $... ]] )
例子 1
代码如下 | 复制代码 |
<?php $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); ?> |
输出:
代码如下 | 复制代码 |
Array ( [a] => Horse [b] => Cat [c] => Cow ) |
例子2
代码如下 | 复制代码 |
<?php |
实例说明
代码如下 | 复制代码 |
<?php |
例2
代码如下 | 复制代码 |
<?php |
大家去测试一下吧这里我测试了的结果是or 比if效率要高一些哦。
本文章来给大家先介绍PHP中文字符串截取的一些问题及关于如何解决英文和汉字混合的情况下会出现乱码的解决方法。1. 截取GB2312中文字符串
代码如下 | 复制代码 |
<?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = “”; $strlen = $start + $len; if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr; } ?> |
2. 截取utf8编码的多字节字符串
代码如下 | 复制代码 |
<?php //截取utf8字符串 { return preg_replace(‘#^(?:[x00-x7F]|[xC0-xFF][x80-xBF]+){0,’.$from.’}’. ?> |
但是在英文和汉字混合的情况下会出现如下问题:
如果有这样一个字符串
代码如下 | 复制代码 |
$str="这是一个字符串"; |
为了截取该串的前10个字符,使用
代码如下 | 复制代码 |
if(strlen($str)>10) $str=substr($str,10)."…"; |
那么,echo $str的输出应该是"这是一个字…"
那么要如何解决这个问题了,下面我来分享一个可以支持gb2312,gbk,big三种编码。
例1
代码如下 | 复制代码 |
$len = 19; $text = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?"; echo strlen($text)<=$len ? $text : (substr($text,0,$len).chr(0)."...."); /****chr(0)不是null null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000 虽然chr(0)不会显示出什么,但是他是一个字符。 当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空” 根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了 注: 编码 第一字节 第二字节 gb2312 0xa1-0xf7 0xa1-0xfe gbk 0x81-0xfe 0x81-0xfe 0x40-0x7e big5 0xa1-0xf7 0x81-0xfe 0x40-0x7e 其次这个是网上搜索的,支持utf-8编码,原作者不详: *****/ function subString_UTF8($str, $start, $lenth) { $len = strlen($str); $r = array(); $n = 0; $m = 0; for($i = 0; $i < $len; $i++) { $x = substr($str, $i, 1); $a = base_convert(ord($x), 10, 2); $a = substr('00000000'.$a, -8); if ($n < $start){ if (substr($a, 0, 1) == 0) { }elseif (substr($a, 0, 3) == 110) { $i += 1; }elseif (substr($a, 0, 4) == 1110) { $i += 2; } $n++; }else{ if (substr($a, 0, 1) == 0) { $r[ ] = substr($str, $i, 1); }elseif (substr($a, 0, 3) == 110) { $r[ ] = substr($str, $i, 2); $i += 1; }elseif (substr($a, 0, 4) == 1110) { $r[ ] = substr($str, $i, 3); $i += 2; }else{ $r[ ] = ''; } if (++$m >= $lenth){ break; } } } return $r; } // End subString_UTF8; }// End String |
#由于此函数返回的是一个数组,因此要配合join函数来显示字符串:
#join('',subString_UTF8($str, $start, $lenth));
#在页面显示的时候还可以在此语句后面连一个"..."
举例 URL : http://www.111cn.net/Test/Test.php
代码如下 | 复制代码 |
$_SERVER['SERVER_NAME']: www.111cn.net $_SERVER['SERVER_PORT'] : 80 $_SERVER['REQUEST_URI'] : /Test/Test.php |
那我们把上面几句结合起来就可以实现了
URL完整路径为:
代码如下 | 复制代码 |
“http://”.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] |
如果你是开了端口号,我们可以使用$_SERVER['SERVER_PORT']就好了,上面的代码修改一下即可。
代码如下 | 复制代码 |
“http://”.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'] |
大家要注意一点。
$_SERVER['PHP_SELFT']与$_SERVER['SCRIPT_NAME']和$_SERVER['REQUEST_URI']和$_SERVER['QUERY_STRING']的区别:
$_SERVER['PHP_SELF']会返回/phptour/test7.php/a=b,会返回文件名/后面的内容
$_SERVER['SCRIPT_NAME']只会返回/phptour/test.php,不会返回文件名后面的/后面的内容
http://localhost:60/phptour/test/test7.php/a=b
$_SERVER['PHP_SELF']将得到:/phptour/test/test7.php/a=b
$_SERVER['SCRIPT_NAME']将得到:/phptour/test/test7.php
$_SERVER['REQUEST_URI']将得到:/phptour/test/test7.php/a=b
$_SERVER['QUERY_STRING']将得到:''
关于用PHP如何实现全站静态化处理的内容,这样让php生成HTML纯静态网页,让访问速度更快。
代码如下 | 复制代码 |
//在开始处加入 ob_start(); //以下是代码 //写入文件 |
这只是最基本的方法,还不是很实用,因为网站是要更新的,要定期重新生成HTML
下面是我用的方法:
代码如下 | 复制代码 |
if(file_exists(“demo.html”)) //文件修改时间和现在时间相差半小时一下的话,直接导向html文件,否则重新生成html //页面的详细内容 //写入文件 //重新导向 |
上面的方法在大批生成时可能不是最好的办法了
代码如下 | 复制代码 |
<?php $iid=$datauser[id];
// 使用写入模式打开$filename if (is_writable($filename)) { // 将$html写入到我们打开的文件中。 print "文件 $filename 更新成功!nr"; fclose($handle); } else {
<div style="font-size=12px"><? echo $datastat." "?></div><br><br> |
说明:原动态地址为 moban.php?id=1 ,生成后地址为 html/200808/sell_1.html 。page.php为分页程序,本博客中有发布。
页面使用方式,将本代码保存为make.php,使用方法为浏览器访问 make.php?t=数量&pg=页面;例如 make.php?t=300&pg=2,即每次生成300条数据,从数据列表第2页开始生成,即跳过前面300条。如果不加任何参数,直接访问make.php,则默认每次生成200条,从第一页开始生成。
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25