PHP是一種流行的伺服器端程式語言,被廣泛用於Web開發和資料處理,其內建函數和特性非常豐富。當我們處理使用者輸入或從外部來源取得資料時,經常需要將字串轉換為數值,以便進行計算和比較操作。本文將介紹PHP字串轉換成數值的方法和技巧,包括型別轉換函數、字串操作函數和正規表示式。讓我們開始吧!
- PHP類型轉換函數
PHP提供了幾個內建的類型轉換函數,用於將不同類型的值轉換為數值類型。這些函數可以處理整數、浮點數、布林值和日期時間等不同的資料類型。以下是一些常用的型別轉換函數:
(1) intval()函數
intval()函數用來將字串轉換為整數。如果字串以數字開頭,那麼函數會將其轉換為整數類型;如果字串以非數字字元開頭,那麼函數會傳回0。 intval()函數也可以指定進位和捨去小數部分。
例如:
$str = '123'; $int = intval($str); // $int的值为123 $str = 'abc123'; $int = intval($str); // $int的值为0 $str = '123.45'; $int = intval($str); // $int的值为123 $str = '0x1a'; $int = intval($str, 16); // $int的值为26
(2) floatval()函數
floatval()函數用於將字串轉換為浮點數。與intval()函數類似,如果字串以數字開頭,那麼函數會將其轉換為浮點數類型;如果字串以非數字字元開頭,那麼函數會傳回0。
例如:
$str = '3.14'; $float = floatval($str); // $float的值为3.14 $str = 'abc.123'; $float = floatval($str); // $float的值为0
(3) boolval()函數
#boolval()函數用於將字串轉換為布林值。如果字串是'0'、''、'false'、'null'或空數組,那麼函數傳回false;否則傳回true。 boolval()函數也可以將其他類型的值轉換為布林值。
例如:
$str1 = '0'; $str2 = 'false'; $str3 = 'null'; $bool1 = boolval($str1); // $bool1的值为false $bool2 = boolval($str2); // $bool2的值为false $bool3 = boolval($str3); // $bool3的值为false $str4 = 'abc'; $bool4 = boolval($str4); // $bool4的值为true $int = 123; $bool5 = boolval($int); // $bool5的值为true
(4) strtotime()函數
strtotime()函數用於將日期時間字串轉換為Unix時間戳記。 Unix時間戳記是從1970年1月1日0時0分0秒到目前時間的秒數。函數的參數可以是任何格式的日期時間字串,如'2019-01-01'、'2020-01-01 12:00:00'等。如果字串無法辨識為日期時間格式,函數傳回false。
例如:
$str = '2020-01-01 12:00:00'; $timestamp = strtotime($str); // $timestamp的值为1577875200
- PHP字串運算子
#除了型別轉換函數,PHP也提供了許多字串運算函數,用於處理字串中的數字部分。這些函數可以實現去除字串中的非數字部分、截取指定長度的數字、判斷字串是否為數字等函數。以下是一些常用的字串運算子:
(1) preg_replace()函數
preg_replace()函數是PHP中基於正規表示式的字串取代函數,可以用來移除字串中的非數字部分。我們可以使用正規表示式來匹配所有非數字字符,並將其替換為空。
例如:
$str = 'abc123xyz456'; $str = preg_replace('/\D/', '', $str); // $str的值为'123456'
在正規表示式中,'\D'表示非數字字符,加上'/'表示將其轉義。使用preg_replace()函數和正規表示式將非數字字元替換為空字串,即可取得只包含數字的字串。
(2) substr()函數
substr()函數用於截取字串中指定位置和長度的子字串。我們可以用該函數截取字串中的數字部分,從而進行型別轉換。
例如:
$str = 'abc123xyz'; $str = substr($str, 3, 3); // $str的值为'123' $int = intval($str); // $int的值为123
(3) is_numeric()函數
is_numeric()函數用來判斷字串是否為數字。如果字串是整數、浮點數或科學計數法表示的數字,那麼函數會傳回true;否則傳回false。
例如:
$str1 = '123'; $str2 = '3.14'; $str3 = '1e10'; $str4 = 'abc'; $bool1 = is_numeric($str1); // $bool1的值为true $bool2 = is_numeric($str2); // $bool2的值为true $bool3 = is_numeric($str3); // $bool3的值为true $bool4 = is_numeric($str4); // $bool4的值为false
- PHP正規表示式
正規表示式是一種靈活且強大的文字比對工具,可以用來處理各種格式的字串。 PHP內建了PCRE函式庫,支援Perl相容的正規表示式語法。我們可以使用正規表示式來匹配字串中的數字部分,並進行類型轉換。
例如:
$str1 = 'abc123xyz'; $str2 = '3.14E2'; $pattern = '/\d+/'; preg_match($pattern, $str1, $matches); // $matches的值为array('123') preg_match($pattern, $str2, $matches); // $matches的值为array('314') $int1 = intval($matches[0]); // $int1的值为123 $float1 = floatval($matches[0]); // $float1的值为123.0 $float2 = floatval($matches[0]) * 100; // $float2的值为12300.0
在正規表示式中,'\d'表示數字字符,' '表示匹配一個或多個數字字符。我們使用preg_match()函數和正規表示式匹配字串中的數字部分,將匹配結果存入$matches數組中;然後使用intval()函數和floatval()函數將匹配結果轉換為整數和浮點數類型。此外,我們也可以對配對結果進行進一步處理,例如乘以100得到浮點數。
小結
本文介紹了PHP字串轉換成數值的方法和技巧,包括型別轉換函數、字串運算子和正規表示式。這些方法可以輕鬆處理各種類型的字串,如整數、浮點數、布林值和日期時間等。最後,我們也介紹如何使用正規表示式來匹配字串中的數字部分,並進行類型轉換。掌握這些技巧,可以讓你在PHP程式設計過程中更得心應手,提升開發效率。
以上是php 字串怎麼轉換成數值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具