সমস্ত,
আমি মনে করি আমি এটি ঠিক করেছি। বর্তমান ইনপুট ফাইলগুলির জন্য কাজ করা এবং এটি সম্পন্ন করার জন্য নিম্নলিখিত দুটি ফাংশন রয়েছে!
ফাংশন বিন্যাস_ফোন_ সংখ্যা:
function format_phone_number ( $mynum, $mask ) {
$val_num = self::validate_phone_number ( $mynum );
if ( !$val_num && !is_string ( $mynum ) ) {
echo "Number $mynum is not a valid phone number! \n";
return false;
}
if ( ( $mask == 1 ) || ( $mask == 'xxx xxx xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'$1 $2 $3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 2 ) || ( $mask == 'xxx xxx.xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'$1 $2.$3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 3 ) || ( $mask == 'xxx.xxx.xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'$1.$2.$3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 4 ) || ( $mask == '(xxx) xxx xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'($1) $2 $3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 5 ) || ( $mask == '(xxx) xxx.xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'($1) $2.$3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 6 ) || ( $mask == '(xxx).xxx.xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'($1).$2.$3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 7 ) || ( $mask == '(xxx) xxx-xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'($1) $2-$3'." \n", $mynum);
return $phone;
}
if ( ( $mask == 8 ) || ( $mask == '(xxx)-xxx-xxxx' ) ) {
$phone = preg_replace('~.*(\d{3})[^\d]*(\d{3})[^\d]*(\d{4}).*~',
'($1)-$2-$3'." \n", $mynum);
return $phone;
}
return false;
}
ফাংশন বৈধতা_ফোন_নম্বার:
function validate_phone_number ( $phone ) {
$format_pattern = '/^(?:(?:\((?=\d{3}\)))?(\d{3})(?:(?<=\(\d{3})\))'.
'?[\s.\/-]?)?(\d{3})[\s\.\/-]?(\d{4})\s?(?:(?:(?:'.
'(?:e|x|ex|ext)\.?\:?|extension\:?)\s?)(?=\d+)'.
'(\d+))?$/';
$nanpa_pattern = '/^(?:1)?(?(?!(37|96))[2-9][0-8][0-9](?<!(11)))?'.
'[2-9][0-9]{2}(?<!(11))[0-9]{4}(?<!(555(01([0-9]'.
'[0-9])|1212)))$/';
$valid = array('format' => false,
'nanpa' => false,
'ext' => false,
'all' => false);
if ( preg_match ( $format_pattern, $phone, $matchset ) ) {
$valid['format'] = true;
}
if ( !$valid['format'] ) {
return false;
} else {
$components = array ( 'ac' => $matchset[1],
'xc' => $matchset[2],
'sn' => $matchset[3]
);
$numbers = array ( 'original' => $matchset[0],
'stripped' => substr(preg_replace('[\D]', '', $matchset[0]), 0, 10)
);
if(preg_match($nanpa_pattern, $numbers['stripped'])) {
$valid['nanpa'] = true;
}
if ( $valid['nanpa'] ) {
if ( !empty ( $components['xn'] ) ) {
if ( preg_match ( '/^[\d]{1,6}$/', $components['xn'] ) ) {
$valid['ext'] = true;
}
} else {
$valid['ext'] = true;
}
}
if ( $valid['ext'] ) {
$valid['all'] = true;
}
}
return $valid['all'];
}
লক্ষ্য করুন আমার কাছে এটি একটি শ্রেণীবদ্ধে রয়েছে, সুতরাং প্রথম ফাংশন / পদ্ধতি থেকে "স্ব :: বৈধতা_ফোন_নম্বার" কল করুন।
"বৈধতা_ফোন_নম্বার" ফাংশনের নোটিশ লাইন # 32 যেখানে আমি যুক্ত করেছি:
if ( !$valid['format'] ) {
return false;
} else {
বৈধ ফোন নম্বর না হলে আমাকে মিথ্যা রিটার্নের প্রয়োজন।
এখনও আরও তথ্যের বিরুদ্ধে এটি পরীক্ষা করা প্রয়োজন, তবে বর্তমান ফর্ম্যাট সহ বর্তমান তথ্যগুলিতে কাজ করা এবং আমি এই নির্দিষ্ট ডেটা ব্যাচের জন্য স্টাইল '8' ব্যবহার করছি।
এছাড়াও আমি "এক্সটেনশন" যুক্তিটি মন্তব্য করেছিলাম কারণ এটি থেকে আমি ক্রমাগত ত্রুটি পাচ্ছিলাম, আমার ডেটাতে আমার কাছে সেই তথ্যটি নেই seeing