hexdec()
是 PHP 中的一個函數,用于將十六進制字符串轉換為十進制數。如果輸入的十六進制字符串包含無效字符,hexdec()
函數會返回 false
。為了處理無效字符,你可以在調用 hexdec()
之前使用 preg_replace()
函數來過濾掉無效字符。
以下是一個示例:
function hexdec_filter($hex_string) {
// 使用正則表達式過濾無效字符(非十六進制字符)
$filtered_hex = preg_replace('/[^0-9a-fA-F]/', '', $hex_string);
// 如果過濾后的字符串為空,返回 false
if (empty($filtered_hex)) {
return false;
}
// 使用 hexdec() 函數將過濾后的十六進制字符串轉換為十進制數
return hexdec($filtered_hex);
}
// 測試示例
$hex_string = "1a2b3c4d5e6f"; // 有效十六進制字符串
$invalid_hex_string = "1a2b3c4d5e6g"; // 包含無效字符('g')
echo hexdec_filter($hex_string) . "\n"; // 輸出:4748(十進制)
echo hexdec_filter($invalid_hex_string) . "\n"; // 輸出:false
在這個示例中,我們定義了一個名為 hexdec_filter()
的函數,該函數首先使用 preg_replace()
函數過濾掉輸入的十六進制字符串中的無效字符,然后使用 hexdec()
函數將過濾后的字符串轉換為十進制數。如果過濾后的字符串為空,函數返回 false
。