Bismillaahirrohmaanirrohiim…
Sebenarnya merubah text format menjadi angka dan sebaliknya merubah format angka menjadi teks disini yaitu kebutuhan aku sendiri.
Biar tidak lupa, maka aku posting diweb rasupe.
Yang pertama, menciptakan teks format.
Misalkan kita ingin menciptakan format kartu kredit atau nomor HP dengan sumber asal teks saja.
Contoh:
$text = 'abcdefghij';
menjadi$fmt_text = 'ab-cd-ef-ghij';
Pada pola di atas, format text terdiri dari digit 2,2,2,4.
Berikut fungsinya:
function textToFormatted($text, $separator='-', $formats = array(2,2,2,4)) {
//abcdefghij to ab-cd-ef-ghij
$sum_formats = array_sum($formats);
//wrong format
if ($sum_formats !== strlen($text)) return '';
$num_formats = count($formats);
$fmt_text = '';
$start = 0;
for ($i=0; $i<$num_formats; $i++) {
$digit = $formats[$i];
if ($i > 0) $fmt_text .= $separator;
$fmt_text .= substr($text, $start, $digit);
$start += $digit;
}
return $fmt_text;
}
Yang kedua, menciptakan format angka menjadi abjad.
Contoh:$text = '12-34-56-789';
menjadi$fmt_text = 'bc-de-fg-ahij';
Pada pola di atas, $fmt_text terdiri dari digit 2,2,2,4. Meski instruksi sumbernya 2,2,2,3.
Jika instruksi sumber berbeda maka digit pertama dari 789 ditambah 0 (0789) sehingga hasil convertnya menjadi ahij.
function numberFormatToText($fmt_number, $separator='-', $formats = array(2,2,2,4)) {
//12-34-56-789 to bc-de-fg-ahij
//digit harus sama persis, bila beda maka dimulai dari 0
$text = '';
$abjad = range('a', 'j');//0-9
$exp = explode($separator, $fmt_number);
$num_formats = count($formats);
$num_exp = count($exp);
//wrong format
if ($num_formats!==$num_exp) return '';
for ($i=0; $i<$num_formats; $i++) {
$digit = $formats[$i];
//wrong format
if (empty($digit)) return '';
$text_part = $exp[$i];
$text_part = preg_replace("/[^0-9]/","",$text_part);
if (empty($text_part)) $text_part = '0';
$text_length = strlen($text_part);
if ($text_length < $digit) {
$repeat = str_repeat('0', $digit-$text_length);
$text_part = $repeat.$text_part;
}
if ($text_length > $digit) {
$text_part = substr($text_part, 0, $digit);
}
if ($i > 0) $text .= $separator;
$split = str_split($text_part);
foreach ($split as $number) {
$text .= $abjad[$number];
}
}
return $text;
}
Yang ketiga, menciptakan format text menjadi angka.
Contoh:
$text = 'ab-cd-ef-ghij';
menjadi$fmt_text = '01-23-45-6789';
Pada pola di atas, format text terdiri dari digit 2,2,2,4.
function textFormatToNumber($fmt_text, $separator='-', $formats = array(2,2,2,4)) {
//ab-cd-ef-ghij to 01-23-45-6789
//digit harus sama persis, bila beda maka dimulai dari a
$text = '';
$numbers = array_flip(range('a', 'j'));//0-9
$exp = explode($separator, $fmt_text);
$num_formats = count($formats);
$num_exp = count($exp);
//wrong format
if ($num_formats!==$num_exp) return '';
for ($i=0; $i<$num_formats; $i++) {
$digit = $formats[$i];
//wrong format
if (empty($digit)) return '';
$text_part = strtolower($exp[$i]);
$text_part = preg_replace("/[^a-z]/","",$text_part);
if (empty($text_part)) $text_part = 'a';
$text_length = strlen($text_part);
if ($text_length < $digit) {
$repeat = str_repeat('a', $digit-$text_length);
$text_part = $repeat.$text_part;
}
if ($text_length > $digit) {
$text_part = substr($text_part, 0, $digit);
}
if ($i > 0) $text .= $separator;
$split = str_split($text_part);
foreach ($split as $abjad) {
if (isset($numbers[$abjad])) {
$text .= $numbers[$abjad];
} else {
$text .= $abjad;
}
}
}
return $text;
}
Fungsi PHP di atas sengaja dibentuk dinamis, sehingga separator dan digit sanggup dirubah sesuai kebutuhan.
ika ingin merubah separator, tinggal dirubah pada dikala memanggil fungsinya, sanggup memakai “=”, “|”, “/”, dll
Digit hasil format juga sanggup dirubah sesuai keinginan, misal 3,4,5 atau 1,5,7, dll
Nah, begitu dulu tutorial kali ini, cara ini sanggup dikembangkan dan dipakai untuk hal-hal yang lain.
Semoga bermanfaat.
Sumber https://rasupe.com
Mari berteman dengan saya
Follow my Instagram _yudha58Related Posts :
Belajar Struktur If...Else Di Php If else bias di sebut juga sebagai pengecualian, karna fungsi if didalam jadwal yakni… Read More...
Memperbesar Max Upload Server Web Apache Di Ubuntu Pada tutorial ini, aku membahas bagaimana caranya memperbesar kapasitas maximum upload di web server yang memakai web server apache untu… Read More...
Mengatur Koneksi Database Dengan Memakai Codeigniter Cahya Dyazin - Tutorial kali ini kita akan membahas cara Configurasi MYSQL di CodeIgniter, ibarat yang kita tahu, codeigni… Read More...
Panduan Install Php 7 Di Ubuntu Server 16.04 Lts PHP, merupakan salah satu bahasa pemrograman yang terkenal dan banyak dipakai di dunia ini. Umumnya PHP dipakai untuk menciptakan aplikasi… Read More...
Konsep Dasar Memakai CodeigniterCahya Dyazin - Ketika kita berguru CodeIgniter, Dalam folder CodeIgneter, terdiri dari 3 folder, "application" ini folder untuk developer ya… Read More...
0 Response to "Merubah Format Teks Menjadi Angka Dan Sebaliknya Dengan Php"
Posting Komentar