导航:首页 > 编程语言 > chstrphp

chstrphp

发布时间:2023-05-01 03:02:03

php的curl如何使用head协议来获取资源的大小等信息

其实curl里面早就有对HEAD协议的支持// 只需要在你的代码中加上这样一行,就会自动选择head协议
curl_setopt($ch, CURLOPT_NOBODY, true);
如果你要读取
Content-Length
,那么只需要在curl_exec后// 读取的header里的Content-Length值
$size = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
需要说明的是HEAD协议虽然被大部分服务器支持,但也不是说所有的服务器都支持,有的服务器为了防抓取,在设置中干掉了这个协议。而
Content-Length
也不是必须的字段,你应该做到如果有这个值,而且超过了最大值,可以返回错误,如果没有这个值,或者没有超过最大值,就必须自己通过已经下载的内容大小来判断。
至于你说的最大资源下载长度,我还没看到这个设置项,不过这个问题有一个更加美好的解决方案,那就是用到
CURLOPT_HEADERFUNCTION和CURLOPT_WRITEFUNCTION
两个回调,那么就只需要一次请求即可完成所有的判断,而且可以随时断掉$size = 0;$max_size = 123456;
curl_setopt($ch, CURLOPT_HEADERFUNCTION, function ($ch, $str) {
// 第一个参数是curl资源,第二个参数是每一行独立的header!
list ($name, $value) = array_map('trim', explode(':', $str, 2));
$name = strtolower($name);
// 判断大小啦
if ('content-length' == $name) {
if ($value $max_size) {
return 0; // 返回0就会中断读取}}});
// 对于没有content-length的,我们一边读取一边判断
curl_setopt($ch, CURLOPT_WRITEFUNCTION, function ($ch, $str) use (&$size) {
$len = strlen($str);
$size += $len;
if ($size $max_size) {

⑵ php 判断是否包含

要是指的是判断一个字符串在另一个字符串是否包含?
方法一、使用strstr,strstr返回需要判断是否被包含的字符开始到结束的字符串,如果没有返回值,则不包含。
举例,判断是否包含字符“#”:
<?php
$str='abc#defg';
$in=strstr($str,'#');
echo $in;//输出结果为:#defg
?>
方法二、使用stristr, 它的用法和strstr的完全一样.唯一的区别是stristr不区分大小写,而strstr区分大小写。可以根据实际情况是否区分大小写来使用。
方法三、使用strpos,但它对中文件的支持不是很好,它的返回值为boolean型,也就是true和false(真和假)。执行速度比stristr和strstr都快,strpos函数中有一个参数用于指定判断的位置,默认为空,即判断整个字符串。
下面看例子:
<?php
$str='bde';
$in='b';
$output=strpos($str,$in);
?>
方法四、将字符串用explode来拆分数组再判断。如下:
function chstr($str,$in){
$tmparr = explode($in,$str);
if(count($tmparr)>1){
return true;
}else{
return false;
}
}
$str='abc#defg';
$in='#';//判断是否包含#这个字符
$bh=chstr($str,$in);
if($bn){
echo '字符串'.$str.'包含'.$in;
}else{
echo '字符串'.$str.'不包含'.$in;
}

⑶ php编程:将26位字母进制转换为10进制数字,如何做

主要是加权法。
10进制结果=∑各位上的值*(进制数^各位权值)
a^b表示a的b次方。
比如你说的26进制
a->1
s->19
d->4
那么asd=1*(26^2)+19*(26^1)+4*(26^0)=1174(10进制)
如果是8进制数456=4*(8^2)+5*(8^2)+6*(8^0)=302(10进制)

分太少,不写源程序了,建立索引数组$arr[a]=1$,arr[b]=2..
再把输入的字母拆成单字符倒序数组使得$single[2]=a,$single[1]=s,$single[0]=d,按上面方法权值相加。
你懂的。

⑷ PHP中有没有将汉字直接转换成16进制的函数

<?$str="汉字";$ch16=str_replace("%","",urlencode($str));echo $ch16;?>输出:BABAD7D6

⑸ php 怎么将字符转成数字

第一种转换方式: 强制转换;

代码:

(5)chstrphp扩展阅读:

PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有:

(int)、(integer):转换成整形;

(float)、(double)、(real):转换成浮点型;

(string):转换成字符串;

(bool)、(boolean):转换成布尔类型;

(array):转换成数组;

(object):转换成对象。

⑹ php 26位字母转换成数字

<?php
$str="aa";//写你想要算的字符串;
$v;
function getv($s){
$arr=str_split($s,1);
for ($i=0;$i<strlen($s);$i++)
{
$v=gett($arr[$i])*getw(strlen($s)-$i-1)+$v;
}
echo $v;
}
function getw($w){
$x=1;
for ($i=0;$i<$w;$i++){
$x=26*$x;
}
return $x;
}
function gett($ch){
return (ord($ch)-96);
}
echo getv($str);
?>

aa,刚好就是27.你试试吧

⑺ php函数如何返回数组啊, 比如,

$a = array();
$a[] = "项目";
$a[] = "标题";
$a[] = "时间";
return $a

⑻ php 怎么截取汉字字符串

?php 
$str = '这样一来我的字符串就不会有乱码^_^'; 
echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); 
//结果:这样一来我的字 
echo "
"; 
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); 
//结果:这样 
?
首先
1.确保你的Windows/system32下有php_mbstring.dll这个文件,没有就从你Php安装目录extensions里拷入Windows/system32里面。
2.在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到
;extension=php_mbstring.dll把前面的;号去掉,这样mb_substr函数就可以生效了
mb_strcut函数功能也可以截取字符串长度,下面实例具体看看区别在哪:
mb_substr();

⑼ php搜索 繁体怎么转成简体

PHP实现---汉字简体繁体转换
这是以class包装好的简繁体转换的class,
另外需要两个table档:
1.http://www.jerry.com.tw/php/big5.map
2.http://www.jerry.com.tw/php/gb.map
程式如下:CCharset.php3
<?//=====================================================
//程式员:MagicJerry
//
//functionBig5_Gb($str)=>big5转GBforstring
//functionGb_Big5($str)=>GB转Big5forstring
//=====================================================
classCCharset{
var$gb_map="gb.map";//如果要放到别的路径,要加上完整路径
var$big5_map="big5.map";//例如="/home/table/gb.map
var$dep_char=127;
//-----------------------------------------------------------------
functioncbig5_gb($str,$fd){
$c=ord(substr($str,0,1));
$x=ord(substr($str,1,1));
$address=(($c-160)*510)+($x-1)*2;
fseek($fd,$address);
$hi=fgetc($fd);
$lo=fgetc($fd);
return"$hi$lo";
}
functioncgb_big5($str,$fd){
坦祥$c=ord(substr($str,0,1));
$x=ord(substr($str,1,1));
$address=(($c-160)*510)+($x-1)*2;
fseek($fd,$address);
$hi=fgetc($fd);
$lo=fgetc($fd);
return"消明$hi$lo";
}
//-----------------------------------------------------------------
functionBig5_Gb($str){
$fd=fopen($this->gb_map,"r");
$str=str_replace("charset=big5","charset=gb2312",$str);
$outstr="";
for($i=0;$i<strlen($str);$i++){
$ch=ord(substr($str,$i,1));
if($ch>$this->dep_char){
$outstr.=$this->cbig5_gb(substr($str,$i,2),$fd);
$i++;
}else{
$outstr.=substr($str,$i,1);
}
}
fclose($fd);
return$outstr;
}
//-----------------------------------------------------------------
functionGb_Big5($str){
$fd=fopen($this->big5_map,"r");
$str=str_replace("charset=gb2312","charset=big5",$str);
$outstr="";
for($i=0;$i<strlen($str);$i++){
$ch=ord(substr($str,$i,1));
if($ch>$this->dep_char){
$outstr.=$this->cgb_big5(substr($str,$i,2),$fd);
$i++;
}else{
$outstr.=substr($str,$i,1);
}
}
fclose($fd);
return$outstr;
}
让桥搏}
?>
===================================================================
使用范例:
<?
//Designer:MagicJerry
//====直接转换文字串的使用方法========
include("CCharset.php3");
$obj=newCCharset;
$big5="这是一个big5的文字串";
$tgb=$obj->Big5_Gb($big5);
echo$tgb;//===>$tgb为转换好的gb码字串
$tbig5=$obj->Gb_Big5($tgb);
echo$tbig5;//又被转回来了:big5
//======================================
?>
<?
//如果直接转换网页或是档案
//语法http://your.domain.com.tw/这个程式.php3?http://要转码的网页url或档案
//example:转换奇摩首页
//http://your.domain.com.tw/这个程式.php3?http://www.kimo.com.tw/index.shtml
//注意:以下写法如遇到该网页有使用cookie,例如认证user,可能会被踢回,login错误..
//为什么?想想看吧...@_@
include("CCharset.php3");
$file=$QUERY_STRING;
$fcontents=join('',file("$file"));
$fcontents=str_replace("<head>","<head><basehref=$file>",$fcontents);
$code=newCCharset;
$gb=$code->Big5_Gb($fcontents);
echo$gb;
?>
范例:
<?
if($func=="charset"){
setcookie("CHAR_GB",$GB,time()+31536000);
$t=time();
$url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING;
$url=str_replace("?func=charset&GB=1","",$url);
$url=str_replace("?func=charset&GB=0","",$url);
$url=str_replace("&func=charset&GB=1","",$url);
$url=str_replace("&func=charset&GB=0","",$url);
//echo$url;
//echo"SETtoCharset=$CHAR_GB";
$t=time();
echo"
<scriptlanguage=javascript>
document.location='$url'
</script>
";
exit;
}
//phpinfo();
if($CHAR_GB==1&&!$istran){
include("CCharset.php3");
if(strlen($QUERY_STRING))$url="http://".$HTTP_HOST.$PHP_SELF."?".$QUERY_STRING."&istran=1";
else$url="http://".$HTTP_HOST.$PHP_SELF."?istran=1";
while(list($key,$val)=each($HTTP_COOKIE_VARS)){
//echo"$key=>$val<br>";
$url.="&".$key."=".urlencode($val);
}
$fcontents=join('',file("$url"));
$code=newCCharset;
$fcontents=$code->Big5_Gb($fcontents);
//echo"转换过的$CHAR_GB";
echo$fcontents;
exit;
}
/

⑽ 求一个 php 数字小写转为大写的函数(在线等,谢谢)

PHP把阿拉伯数字转换成中文,需要定义一个转换的算法

算法实例:

<?php
/将数字转换为汉字,比如1210转换为一千二百一十
$num="842105580";//九位数
functiondel0($num)//去掉数字段前面的0
{
return"".intval($num);
}
functionn2c($x)//单个数字变汉字
{
$arr_n=array("零","一","二","三","四","五","六","七","八","九","十");
return$arr_n[$x];
}
functionnum_r($abcd)//读取数值(4位)
{
$arr=array();
$str="";//读取后的汉字数值
$flag=0;//该位是否为零
$flag_end=1;//是否以“零”结尾
$size_r=strlen($abcd);
for($i=0;$i<$size_r;$i++)
{
$arr[$i]=$abcd{$i};
}
$arrlen=count($arr);
for($j=0;$j<$arrlen;$j++)
{
$ch=n2c($arr[$arrlen-1-$j]);//从后向前转汉字
echo$ch;
echo"";
if($ch=="零"&&$flag==0){//如果是第一个零
$flag=1;//该位为零
$str=$ch.$str;//加入汉字数值字符串
continue;
}elseif($ch=="零"){//如果不是第一个零了
continue;
}
$flag=0;//该位不是零
switch($j){
case0:$str=$ch;$flag_end=0;break;//第一位(末尾),没有以“零”结尾
case1:$str=$ch."十".$str;break;//第二位
case2:$str=$ch."百".$str;break;//第三位
case3:$str=$ch."千".$str;break;//第四位
}
}
if($flag_end==1)//如果以“零”结尾
{
mb_internal_encoding("UTF-8");
$str=mb_substr($str,0,mb_strlen($str)-1);//把“零”去掉
}
return$str;
}
functionnum2ch($num)//整体读取转换
{
$num_real=del0($num);//去掉前面的“0”
$numlen=strlen($num_real);
echo"numlen=".$numlen."";
if($numlen>=9)//如果满九位,读取“亿”位
{
$y=substr($num_real,-9,1);
//echo$y;
$wsbq=substr($num_real,-8,4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c=num_r(del0($y))."亿";
}elseif($numlen<=8&&$numlen>=5)//如果大于等于“万”
{
$wsbq=substr($num_real,0,$numlen-4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c="";
}elseif($numlen<=4)//如果小于等于“千”
{
$gsbq=substr($num_real,-$numlen);
$a=num_r(del0($gsbq));
$b="";
$c="";
}
$ch_num=$c.$b.$a;
return$ch_num;
}
echo$num."";//数字
echonum2ch($num);//汉字
echo"";
echonum2ch("1240");
?>
阅读全文

与chstrphp相关的资料

热点内容
框架结构可以加密吗 浏览:218
python编译器怎么清除 浏览:73
linux全局socks代理 浏览:611
php微信抽奖 浏览:771
压缩算法嵌入式移植 浏览:531
php新手小例子 浏览:233
按照医生的算法一周是几天 浏览:805
三次b样条曲线算法 浏览:924
java7特性 浏览:555
爱山东app小学报名怎么知道报没报上 浏览:458
android获取wifi信号 浏览:133
娜拉美妆app怎么使用 浏览:760
有了源码要买服务器吗 浏览:365
app怎么查看自己的存款利息 浏览:515
碧蓝安卓与b站有什么区别 浏览:342
php静态块 浏览:719
ftpmget命令 浏览:475
源码时代怎样 浏览:415
编译aptget 浏览:102
打开防火墙的命令 浏览:161