簡體   English   中英

PHP在長字符串中查找15或16位數字

[英]PHP Find a 15 or 16-digit number in a long string

我正在通過清除X以外的所有數字來清理信用卡數據的功能。 問題是我已經有很多數據作為json對象存儲在數據庫中。 每條記錄的某個位置可能有也可能沒有卡號,而且它們在記錄之間的不同位置出現在文本中(有時在末尾,有時在中間,等等)。尋找一種提取所有15條記錄的方法字符串中的兩位或16位數字,以便我可以將此數字傳遞給sanitize函數。

尋找一種從字符串中提取所有15位或16位數字的方法

您可以使用:

\b[0-9]{15,16}\b

如果將其作為json對象存儲在數據庫中,並且您想在對象中找到一個屬性,則需要使用json_decode()進行記錄並將其設置為php Stdclass。

因此,如果JSON記錄如下所示:

$record = "{ 'name' : 'theSpurg', 'cc_num' : '139764518623' }"

您可以像這樣訪問

$test = json_decode($record);
$credi_num = $test->cc_num;

如果那不是您想要的,那我就誤會了。 干杯

在PHP中,您可以這樣使用:

<?php
$subject="aa999999999999999aa888888888888888as555555ssd555fs22aa999999999999999a";//Your string
preg_match_all('/(?:[0-9]{15,16})+/s', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[0];

print_r($result);//Printing result

輸出:

Array ( [0] => 999999999999999 [1] => 888888888888888 [2] => 999999999999999 ) 

如果您只想要一個和第一個電話號碼,則可以改用以下號碼:

if (preg_match('/([0-9]{15,16})/s', $subject, $regs)) {
    $result = $regs[0];
} else {
    $result = "";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM