導航:首頁 > 編程語言 > 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相關的資料

熱點內容
微信聊天界面源碼 瀏覽:24
seo競價推廣點擊價格演算法公式 瀏覽:319
框架結構可以加密嗎 瀏覽: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