小編給大家分享一下php中字符串如何轉換整型,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、虛擬主機、營銷軟件、網站建設、融水網站維護、網站推廣。
php字符串轉換整型的方法:1、通過“intval($num);”方法將字符串類型的數字轉成整型的數字;2、利用ascii碼的方式將字符串轉成整型。
PHP-字符串轉整型-不使用內置函數
介紹
php字符串類型的數字如果想轉成整型的數字,一般我們都是采用系統(tǒng)內置的API去做轉換,但如果規(guī)定就不讓我們去用系統(tǒng)內置的API轉換,而是讓自己去實現一個函數轉換該怎么辦?這里我們看下如何去實現。
系統(tǒng)內置 API 方式
$num = '345432123'; //(一) $num = (int)$num; //輸出: //int(345432123) //(二) $num = intval($num); //輸出: //int(345432123)
采用 ASCII 碼方式
下面我們利用 ascii 碼的方式去做轉換,因為每個字符都對應一個 ascii 碼,當對這個字符做加減乘除的時候,實際上就是對 ascii 碼做加減乘除操作,也就是整型操作,最終會返回一個整型數字.
字符 '0' ~ '9' 的 ascii 碼是 48~57 我們在轉換的時候就是用每一個字符減去 '0' 例如: '1' - '0' = 1、'2' - '0' = 2 返回值就是一個Int類型,下面具體看代碼實現.
function convertInt($strInt = ''){
$len = strlen($strInt);
$int = 0;
for($i=0;$i<$len;$i++){
$int *= 10;
$num = $strInt{$i} - '0';
$int += $num;
}
return $int;
}
$num = '345432123';
var_dump(convertInt($num)); //輸出: int(345432123)
在 redis 里面也有提供一個字符串轉整型的函數,也是通過ascii碼方式去做的,實現的比較完善嚴謹,具體可以參考下
string2ll 函數
#include <stdio.h>
#include <limits.h>
#include <string.h>
/* Convert a string into a long long. Returns 1 if the string could be parsed
* into a (non-overflowing) long long, 0 otherwise. The value will be set to
* the parsed value when appropriate. */
int string2ll(const char *s, size_t slen, long long *value) {
const char *p = s;
size_t plen = 0;
int negative = 0;
unsigned long long v;
if (plen == slen)
return 0;
/* Special case: first and only digit is 0. */
if (slen == 1 && p[0] == '0') {
if (value != NULL) *value = 0;
return 1;
}
if (p[0] == '-') {
negative = 1;
p++; plen++;
/* Abort on only a negative sign. */
if (plen == slen)
return 0;
}
/* First digit should be 1-9, otherwise the string should just be 0. */
if (p[0] >= '1' && p[0] <= '9') {
v = p[0]-'0';
p++; plen++;
} else if (p[0] == '0' && slen == 1) {
*value = 0;
return 1;
} else {
return 0;
}
while (plen < slen && p[0] >= '0' && p[0] <= '9') {
if (v > (ULLONG_MAX / 10)) /* Overflow. */
return 0;
v *= 10;
if (v > (ULLONG_MAX - (p[0]-'0'))) /* Overflow. */
return 0;
v += p[0]-'0';
p++; plen++;
}
/* Return if not all bytes were used. */
if (plen < slen)
return 0;
if (negative) {
if (v > ((unsigned long long)(-(LLONG_MIN+1))+1)) /* Overflow. */
return 0;
if (value != NULL) *value = -v;
} else {
if (v > LLONG_MAX) /* Overflow. */
return 0;
if (value != NULL) *value = v;
}
return 1;
}
//-------- 執(zhí)行 ---------
int main(){
long long num;
string2ll("345432123",strlen("345432123"),&num);
printf("%d\n",num); //輸出 345432123
retunr 0;
}以上是“php中字符串如何轉換整型”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯行業(yè)資訊頻道!
本文名稱:php中字符串如何轉換整型
文章起源:http://chinadenli.net/article14/gphige.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站制作、云服務器、自適應網站、全網營銷推廣、網站內鏈、軟件開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯