当前位置:  编程技术>php
本页文章导读:
    ▪php 判断是否是中文/英文/数字的实例代码      在php中对输入进行中文、英文、数字的判断。 例子:   代码示例: <?php /** * 检测输入是否为中文、英文或数字 * edit: www. */ $str='asb天水市12'; if (preg_match("/^[\x7f-\xff]+$/", $str)){ echo '全.........
    ▪PHP file_get_contents超时的设置方法      本节分享的内容是:file_get_contents的超时处理方法。 自PHP5起,file_get_content已支持context了,也就是说从5.0开始,file_get_contents其实也可以POST数据。 在跨服务器传递数据时,超时的处理,set_tim.........
    ▪php验证码简单函数代码(附效果图)      本节代码实现一个简单的php验证码,代码比较简短,使用也很方便。 代码: <?php /** * vCode(m,n,x,y) m个数字 显示大小为n 边宽x 边高y * micxp * www. */ session_start(); vCode(4, 1.........

[1]php 判断是否是中文/英文/数字的实例代码
    来源: 互联网  发布时间: 2013-12-24

在php中对输入进行中文、英文、数字的判断。
例子:
 

代码示例:

<?php
/**
* 检测输入是否为中文、英文或数字
* edit: www.
*/

$str='asb天水市12';

if (preg_match("/^[\x7f-\xff]+$/", $str)){
echo '全部是汉字';
}else {
echo '不全是汉字';
}
/**
PHP自带的判断是否是中文,
eregi('[^\x00-\x7F]', $str ) //中文
eregi('[0-9]', $str) //数字
eregi('[a-zA-Z]', $str)//英文
*/
if (eregi('[^\x00-\x7F]', $str) || eregi('[0-9]', $str) || eregi('[a-zA-Z]', $str)){
echo '你输入的为中英文数字的并合体哦!'.'<br>';
echo "长度:".strlen($str);
}
/ **

以下两个方法用来判断是否是英文汉字和数字组成的字符串,
或全部是中文组成的字符串 用的变量$str还是本文开头的变量

*/

if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) {
echo '全部是汉字';
} else {
echo '不全是汉字';
}

if (preg_match("/([\x81-\xfe][\x40-\xfe])/", $str, $match)) {
echo '含有汉字';
} else {
echo '不含有汉字';
}

/**

此为js方法,判断了一个汉字占两个字节,一个中文或数字占一个,使用编码为UTF-8

*/

<script>

var leng = {};

var value = document.forms[0].name.value;
jmz.GetLength = function(str) {
var realLength = 0, len = str.length, charCode = -1;
for (var i = 0; i < len; i++) {
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) realLength += 1;
else realLength +=2;
}
return realLength;
};

alert(leng.GetLength(value))

</script>

function checkStr($str){
$output='';
$a=ereg('['.chr(0xa1).'-'.chr(0xff).']', $str);
$b=ereg('[0-9]', $str);
$c=ereg('[a-zA-Z]', $str);
if($a && $b && $c){ $output='汉字数字英文的混合字符串';}
elseif($a && $b && !$c){ $output='汉字数字的混合字符串';}
elseif($a && !$b && $c){ $output='汉字英文的混合字符串';}
elseif(!$a && $b && $c){ $output='数字英文的混合字符串';}
elseif($a && !$b && !$c){ $output='纯汉字';}
elseif(!$a && $b && !$c){ $output='纯数字';}
elseif(!$a && !$b && $c){ $output='纯英文';}
return $output;
}

echo checkStr('5爱u');


    
[2]PHP file_get_contents超时的设置方法
    来源: 互联网  发布时间: 2013-12-24

本节分享的内容是:file_get_contents的超时处理方法。

自PHP5起,file_get_content已支持context了,也就是说从5.0开始,file_get_contents其实也可以POST数据。
在跨服务器传递数据时,超时的处理,set_time_limit是没有用的,只有用context中的timeout时间来控制。

相反,我们不是要抑止,而是要管理。比如在超时返回错误后,进行一次尝试,就象js中的 settimeout那样,对函数重新处理。错误超过3次或者5次后,我们就确实的认为无法连接服务器而彻底放弃。这,是一个好办法,应该值得推荐使用。其实。不全是file_get_contents,只要支持context的都应该加上,避免超时浪费时间。

如此可以被支持的函数大致有:fsocketopen(该函数的最后一个参数。
推荐在读stream时,使用stream_time_out函数进行控制),fopen(也是从PHP5开始加入context支持),file(PHP5加入支持),curl(curl有自已的变量 CURLOPT_TIMEOUT)等 。

在使用file_get_contents函数时,经常会出现超时的情况,及时定位犯错误类型,然后付之以相应的解决办法即可。

介绍两种:
一、增加超时的时间限制
注意:set_time_limit只是设置PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。
真正的修改 file_get_contents延时可以用resource $context的timeout参数:
 

代码示例:

<?php
$opts = array(  
  'http'=>array(  
    'method'=>"GET",  
    'timeout'=>1,//单位秒 
   )  
);   

 $cnt=0;  
while($cnt<3 && ($bb=file_get_contents("http://www.", false, stream_context_create($opts)))===FALSE) $cnt++;  
echo $cnt;  
echo $bb;

二、一次有延时的话那就多试几次
有时失败是因为网络等因素造成。
可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失 败将返回 FALSE。
例如:
$cnt=0;  
 while($cnt<3 && ($bb=file_get_contents("http://www.", false, stream_context_create($opts)))===FALSE) $cnt++;
以上方法对付超时已经OK了。
那么Post呢?'method'=>”GET”, 是不是能设置成post呢?
例如:
 

代码示例:

<?php
function Post($url, $post = null){  
    $context = array ();  
    if (is_array ( $post )) {  
        ksort ( $post );  
        $context ['http'] = array (  
            'timeout' => 60,   
            'method' => 'POST',   
            'content' => http_build_query( $post, '', '&' )  
         );  

    }  
    return file_get_contents ( $url, false, stream_context_create ( $context ) );  
}  

 $data = array (  
    'name' => 'test',  
    'email' => 'admin@admin.com',  
    'submit' => 'submit',  
);  
echo Post ( 'http://www.', $data );

就是这样了,以上的函数还是不错的,同时解决了超时控制与Post传值的问题。


    
[3]php验证码简单函数代码(附效果图)
    来源: 互联网  发布时间: 2013-12-24

本节代码实现一个简单的php验证码,代码比较简短,使用也很方便。
代码:

<?php   
 /** 
 * vCode(m,n,x,y) m个数字  显示大小为n   边宽x   边高y 
 * micxp 
 * www.
 */  
session_start();    
vCode(4, 15); //4个数字,显示大小为15  

function vCode($num = 4, $size = 20, $width = 0, $height = 0) {   
    !$width && $width = $num * $size * 4 / 5 + 5;   
    !$height && $height = $size + 10;    
    // 去掉了 0 1 O l 等  
    $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW";   
    $code = '';   
    for ($i = 0; $i < $num; $i++) {   
        $code .= $str[mt_rand(0, strlen($str)-1)];   
    }    
    // 画图像  
    $im = imagecreatetruecolor($width, $height);    
    // 定义要用到的颜色  
    $back_color = imagecolorallocate($im, 235, 236, 237);   
    $boer_color = imagecolorallocate($im, 118, 151, 199);   
    $text_color = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));   
    // 画背景  
    imagefilledrectangle($im, 0, 0, $width, $height, $back_color);    
    // 画边框  
    imagerectangle($im, 0, 0, $width-1, $height-1, $boer_color);    
    // 画干扰线  
    for($i = 0;$i < 5;$i++) {   
        $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));   
        imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2),
 mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color);   
    }    
    // 画干扰点  
    for($i = 0;$i < 50;$i++) {   
        $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));   
        imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color);   
    }    
    // 画验证码  
    @imagefttext($im, $size , 0, 5, $size + 3, $text_color, 'c:\\WINDOWS\\Fonts\\simsun.ttc', $code);   
    $_SESSION["VerifyCode"]=$code;    
    header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");   
    header("Content-type: image/png;charset=gb2312");   
    imagepng($im);   
    imagedestroy($im);   
}  
?>

php 验证码的效果图,如下:

您可能感兴趣的文章:
分享一个php 验证码类及调用示例
php验证码的三个实例代码分享
一个php验证码的封装类
php自定义大小验证码的实例代码
php生成扭曲及旋转的验证码图片的实例代码
php仿QQ验证码的实现代码
php验证码函数使用的例子
php5验证码类(简易实用型)
php验证码(GD库生成验证码)的例子
php点击验证码实时刷新的实现代码
php图片验证码的例子
php彩色验证码的简单例子
php验证码刷新与局部刷新的实现方法
php GD库生成验证码的实例
php生成验证码的例子
php随机验证码 php生成随机验证码(图文)
一个比较稳定的php登陆系统验证码
用php生成带有雪花背景的验证码

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
Web服务器/前端 iis7站长之家
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3