這篇文章給大家聊聊關于php連接字符串,以及php獲取字符串中的指定字符對應的知識點,希望對各位有所幫助,不要忘了收藏本站哦。
PHP語言怎么把JSON字符串轉為對象
json_decode
PHPjson_decode()函數用于對JSON格式的字符串進行解碼,并轉換為PHP變量。
語法
mixedjson_decode($json[,$assoc=false[,$depth=512[,$options=0]]])
參數
json_string:待解碼的JSON字符串,必須是UTF-8編碼數據
assoc:當該參數為TRUE時,將返回數組,FALSE時返回對象。
depth:整數類型的參數,它指定遞歸深度
options:二進制掩碼,目前只支持JSON_BIGINT_AS_STRING。
php的接口怎么寫啊
說白話點,接口就是一個沒有視圖只有數據的控制器。通常返回字符串形式的json。例如有個界面與有個接口需要獲取用戶名查詢出來的用戶數據為$info=['name'=>'張三'];界面的處理你會輸出一個------姓名:{?phpecho$info['name']?}接口的格式則為returnjson_encode($info);輸出一個{"name":"張三"}
php如何接收json數據
根據個人理解PHP接收json數據有三種:獲取json格式的請求參數;獲取json文件中的數據;獲取接口返回的寄送數據。下面將一一講述:1、獲取請求參數$input=file_get_contents("php://input");
$input=json_decode($input,true);
var_dump($input);
2、獲取文件中的json$jsonStr=file_get_contents('src/xx.json');
$jsonObj=json_decode($jsonStr,true);
3、獲取接口返回的json(以post請求為例)functionrun_curl_json($url,$data,$timeout){
$data=json_encode($data);
$ch=curl_init($url);//請求的URL地址
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-Type:application/json','Content-Length:'.strlen($data)));
$ret=curl_exec($ch);
$httpCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
curl_close($ch);
$jsonObj=json_decode($ret,true);
return['data'=>$jsonObj,'code'=>$httpCode];
}
以上三種方式中獲取到的都是json字符串,然后通過json_decode將json字符串轉為數組。
PHP中英文混合排版中處理字符串常用的函數
對一段文字按照字數進行分割,因為文字中可能是中英文混合的,而php函數strlen只能計算出字串的字節數,于是自己實現了幾個函數,分享下。 例1,計算字符總長度。 01<?php 02functionccStrLen($str)#計算中英文混合<ahref="/"target="_blank">字符串</a>的長度 03{ 04$ccLen=0; 05$ascLen=strlen($str); 06$ind=0; 07$hasCC=ereg(”[xA1-xFE]“,$str);#判斷是否有漢字 08$hasAsc=ereg(”[x01-xA0]“,$str);#判斷是否有ASCII字符 09if($hasCC&&!$hasAsc)#只有漢字的情況 10returnstrlen($str)/2; 11if(!$hasCC&&$hasAsc)#只有Ascii字符的情況 12returnstrlen($str); 13for($ind=0;$ind<$ascLen;$ind++) 14{ 15if(ord(substr($str,$ind,1))>0xa0) 16{ 17$ccLen++; 18$ind++; 19} 20else 21{ 22$ccLen++; 23} 24} 25return$ccLen; 26} 27?> 例2,從左側截取字符串。 01<?php 02functionccStrLeft($str,$len)#從左邊截取中英文混合字符串 03{ 04$ascLen=strlen($str);if($ascLen<=$len)return$str; 05$hasCC=ereg(”[xA1-xFE]“,$str);#同上 06$hasAsc=ereg(”[x01-xA0]“,$str); 07if(!$hasCC)returnsubstr($str,0,$len); 08if(!$hasAsc) 09if($len&0×01)#如果長度是奇數 10returnsubstr($str,0,$len+$len-2); 11else 12returnsubstr($str,0,$len+$len); 13$cind=0;$flag=0;$reallen=0;//實際取字節長 14while($cind<$ascLen&&$reallen<$len) 15{//by
www.jbxue.com
16if(ord(substr($str,$cind,1))<0xA1){//如果該字節為英文則加一 17$cind++; 18}else{//否則加2個字節 19$cind+=2; 20} 21$reallen++; 22} 23returnsubstr($str,0,$cind); 24} 25?> 例3,把給定文字,按切割數量存入數組(適合短篇文字,長文章可沒分隔一部分就直接處理一次) viewsourceprint? 01<?php 02functionSplitContent($content,$smslen){ 03$str_tmp=$content; 04$arr_cont=array(); 05$len_tmp=0; 06$i=0;//分割絕對位置 07while(strlen($str_tmp)>0){ 08$str_tmp=ccStrLeft($str_tmp,$smslen); 09array_push($arr_cont,$str_tmp); 10$i+=strlen($str_tmp); 11$str_tmp=substr($content,$i,strlen($content)); 12} 13return$arr_cont; 14}//bywww.jbxue.com
15?> 測試: 1<?php 2$str=’a計算中英文混合1234字符串的長度abcd’; 3echo$str.’的長度為:’.ccStrLen($str); 4echo‘<br>’; 5$smslen=3;//截取長度 6print_r(SplitContent($str,$smslen)); 7?>sql如何連接運算符
連接運算符的使用方法: 1、在php里 等同于其他語言里字符串操作的+如echo"hello"."world";等同于echo"hello"+"world";同理.=也同于+= 2、在c語言里 p=strjoin(buf,"^^","string1","string2","string3",NULL);可以連接n個字符串,結果在buf中。buf必須足夠大。 3、在sql里 2、SQLSERVER數據庫連接符為+,例如連接字符串AB、CD可以使用“AB”+“CD” 3、在mysql里 MYSQL數據庫中連接符用concat函數實現,例如連接字符串AB、CD可以使用concat('AB','CD') 4、在oracle里 oracle數據庫中的連接符為||,例如連接字符串AB、CD可以使用“AB”||“CD
OK,本文到此結束,希望對大家有所幫助。