php获取中文字符拼音首字母实例
实例1
代码如下 | 复制代码 |
function getFirstCharter($str) { 例如: echo getFirstCharter("程序员3aj.cn"); // 结果将输出:C |
实例二
代码如下 | 复制代码 |
<?php $limit=array( //gb2312 拼音排序 array(45217,45252), //A array(45253,45760), //B array(45761,46317), //C array(46318,46825), //D array(46826,47009), //E array(47010,47296), //F array(47297,47613), //G array(47614,48118), //H array(0,0), //I array(48119,49061), //J array(49062,49323), //K array(49324,49895), //L array(49896,50370), //M array(50371,50613), //N array(50614,50621), //O array(50622,50905), //P array(50906,51386), //Q array(51387,51445), //R array(51446,52217), //S array(52218,52697), //T array(0,0), //U array(0,0), //V array(52698,52979), //W array(52980,53688), //X array(53689,54480), //Y array(54481,55289), //Z ); $str="A:这是一个测试程序1"; $str= iconv("UTF-8","gb2312", $str); echo $str."</br>"; $i=0; while($i<strlen($str) ) { $tmp=bin2hex(substr($str,$i,1)); if($tmp>='B0'){ //汉字的开始 $t=getLetter(hexdec(bin2hex(substr($str,$i,2)))); printf("%c",$t==-1 ? '*' : $t ); $i+=2; } else{ printf("%s",substr($str,$i,1)); $i++; } } function getLetter($num){ global $limit; $char_index=65; foreach($limit as $k=>$v){ if($num>=$v[0] && $num<=$v[1]){ $char_index+=$k; return $char_index; } } return -1; } ?> |
header()函数
header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。
header()函数的定义如下:
void header (string string [,bool replace [,int http_response_code]])
可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。
第二个可选参数http_response_code强制将HTTP相应代码设为指定值。 header函数中Location类型的标头是一种特殊的header调用,常用来实现页面跳转。注意:1.location和“:”号间不能有空格,否则不会跳转。
1.使用php里head函数进行跳转
注意:head跳转前不要有任何输出,不然可能不能跳转.
代码如下 | 复制代码 |
header("refresh:3;url=http://www.111cn.net");//限时跳转 |
2. HTML meta refresh 刷新与跳转(重定向)页面
Meta标签
Meta标签是HTML中负责提供文档元信息的标签,在PHP程序中使用该标签,也可以实现页面跳转。 若定义http-equiv为refresh,则打开该页面时将根据content规定的值在一定时间内跳转到相应页面。
refresh 属性值 — 刷新与跳转(重定向)页面
refresh用于刷新与跳转(重定向)页面
refresh出现在http-equiv属性中,使用content属性表示刷新或跳转的开始时间与跳转的网址
代码如下 | 复制代码 |
<meta http-equiv="refresh" content="3; url=http://www.111cn.net"> |
3.js实现页面跳转
js实现跳转主要用到location对象
代码如下 | 复制代码 |
<script type='text/javascript'> |
创建一个文件上传表单
允许用户从表单上传文件是非常有用的。
请看下面这个供上传文件的 HTML 表单:
代码如下 | 复制代码 |
<html> <form action="upload_file.php" method="post" enctype="multipart/form-data"> </body> |
请留意如下有关此表单的信息:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。
注释:允许用户上传文件是一个巨大的安全风险。请仅仅允许可信的用户执行文件上传操作。
创建上传脚本
"upload_file.php" 文件含有供上传文件的代码:
代码如下 | 复制代码 |
|
通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
第一个参数是表单的 input name(表单file组件的name值),第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:
$_FILES["attach_file"]["name"] - 被上传文件的名称
$_FILES["attach_file"]["type"] - 被上传文件的类型
$_FILES["attach_file"]["size"] - 被上传文件的大小,以字节(b)为单位
$_FILES["attach_file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["attach_file"]["error"] - 由文件上传导致的错误代码
这是一种非常简单文件上传方式。基于安全方面的考虑,您应当增加有关什么用户有权上传文件的限制。
上传限制
在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
代码如下 | 复制代码 |
<?php if ((($_FILES["attach_file"]["type"] == "image/gif") || ($_FILES["attach_file"]["type"] == "image/jpeg") || ($_FILES["attach_file"]["type"] == "image/pjpeg")) && ($_FILES["attach_file"]["size"] < 20000)) { ?> |
注释:对于 IE,识别 jpg 文件的类型必须是 pjpeg,对于 FireFox,必须是 jpeg。
保存被上传的文件
上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。
这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
代码如下 | 复制代码 |
<?php if ((($_FILES["attach_file"]["type"] == "image/gif") || ($_FILES["attach_file"]["type"] == "image/jpeg") || ($_FILES["attach_file"]["type"] == "image/pjpeg")) && ($_FILES["attach_file"]["size"] < 20000)) { if ($_FILES["attach_file"]["error"] > 0) { echo "Return Code: " . $_FILES["attach_file"]["error"] . "<br />"; } else { echo "Upload: " . $_FILES["attach_file"]["name"] . "<br />"; echo "Type: " . $_FILES["attach_file"]["type"] . "<br />"; echo "Size: " . ($_FILES["attach_file"]["size"] / 1024) . " Kb<br />"; echo "Temp file: " . $_FILES["attach_file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["attach_file"]["name"])) { echo $_FILES["attach_file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["attach_file"]["tmp_name"], "upload/" . $_FILES["attach_file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["attach_file"]["name"]; } } } else { echo "Invalid file"; } ?> |
上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。
注意:这个例子把文件保存到了名为 "upload" 的新文件夹。
上传文件大小限制大全
在php.ini里面可以设置最大上传文件大小
解决方法:
第一:
在php.ini里面查看如下行:
upload_max_filesize = 8M
post_max_size = 10M
memory_limit = 20M
另外要确认上传的 <form> 里类似下面的这行
<input type="hidden" name="MAX_FILE_SIZE" value="500000">
第二:
如果是apache 2 需要修改
view sourceprint?1 /etc/httpd/conf.d/php.conf
中的LimitRequestBody 524288将524288(=512×1024)改大,比如5M(=5×1024×1024)
另外:PHP的最大执行时间也是可能影响的因素。
也可通过php文件临时设置,代码如下:
代码如下 | 复制代码 |
<?php |
打开php.ini,首先找到
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
区域,有影响文件上传的以下几个参数:
file_uploads = on ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize = 200m ;望文生意,即允许上传文件大小的最大值。默认为2M
在
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
区域,还有一项:
post_max_size = 100m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个PHP页面所吃掉的最大内存,默认8M
把上述参数修改后,在网络所允许的正常情况下,就可以上传大体积文件了。
好了,设置好现在就可以一试。点击一200大M的文件上传一下
在你听歌、想MM或上厕所回来过程中,程序会告诉你上传成功啦~
在本机上测试上传200M的文件成功。
工作中的一次配置:
代码如下 | 复制代码 |
upload_max_filesize 300M |
补充说明:需要保持 memory_limit > post_max_size > upload_max_filesize
Global是php中一个比较特殊的命令,大家直接叫他超级全局变量了,下面我来介绍我今天在使用Global定义全局学习笔记了。很不习惯PHP中的变量作用域,PHP中函数变量和全局是完全隔绝的,也就是无法相互访问。
比如下面这样:
copytext
代码如下 | 复制代码 |
$test = 123; abc(); //这里什么都不输出,因为访问不到$test变量 abc(); //这里什么都不输出,因为访问不到$test变量 |
}如果,你想在函数内部访问外部变量,你需要这样:
copytext
代码如下 | 复制代码 |
$test = 123; abc(); //输出123 abc(); //输出123 |
但如果我们在函数中定义全局变量呢,像下面这样:
copytext
代码如下 | 复制代码 |
function abc(){ global $test; $test = 123; } abc(); echo($test); //输出123function abc(){ global $test; $test = 123; } abc(); echo($test); |
//输出123通过这种方式,我们可以在外部访问到函数内部定义的变量
在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!
解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….
解决方案:
1. 冲出局部函数
//A.php 文件
代码如下 | 复制代码 |
<?php //B.php 文件 <?php |
2.优秀的访问器
代码如下 | 复制代码 |
//A.php 文件 //B.php 文件 <?php |
1. 获取地址
这个功能最主要的就是用正则表达式来匹配页面源码里的图片地址了,这里用到得正则表达式是:
代码如下 | 复制代码 |
/<img.*src="(.*)"\s*.*>/iU |
首页通过PHP自带的读取文件函数来获得请求页面的html代码,然后用正则表达式来匹配里面的src地址,这里有两个注意点:
■file_get_content
只能获取到静态的页面内容,也就是说如果你在页面里看到的是图片是通过Javascript来展示的,通过这个工具是获取不到图片信息的
■有的网站对file_get_content 这个函数做了些限制,如果不是通过浏览器打开的网页,服务器是拒绝请求的,这个时候我们就需要给php 程序添加一个配置信息,让采集的程序能够模拟一个留言器的UA(user agent),具体的做法可以通过下面的代码来实现://现在模拟的是一个Window 环境下的浏览器
ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; 4399Box.560; .NET4.0C; .NET4.0E)');
通过以上两点的处理,获取网页源码就没有问题了,唯一要做的就是用正则表达式对图片地址的匹配。
例子1
代码如下 | 复制代码 |
/** |
可能有些朋友也知道file_get_contents性能不怎么样,我们可使用curl来获取
代码如下 | 复制代码 |
|
相关文章
js URLdecode()与urlencode方法支持中文解码
下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20- 下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
- 获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
- 主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
- 本文实例讲述了php实现字符串首字母大写和单词首字母大写的方法。分享给大家供大家参考。...2015-03-15
- jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
- 1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24- 这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- 在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
- 一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
- 小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
- 这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 如果是为了取到tagName后再进行判断,那直接用下面的代码会更方便: $(element).is('input') 如果是要取到标签用作到别的地方,可以使用一下代码: $(element)[0].tagName 或: $(element).get(0).tagName...2014-05-31
- 复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->item(0)->nodeValue;...2013-10-04
- 一种是把所有中文字符集合起来组成一个对照表;另一种是依照汉字在Unicode编码表中的排序来确定拼音的首字母。碰到多音字时就以常用的为准(第一种方法中可以自行更改,方法为手动把该汉字移动到对应的拼音首字母队列,我们这里介绍第二种...2020-06-25
- 本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07