Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 3
Bekerja Dengan Tipe Data String PHP Part 2
Dalam PHP, kita dapat melakukan manipulasi string dengan beberapa built-in function yang tersedia. Fungsi-fungsi string tersebut sangat banyak. Mari kita bahas beberapa fungsi string yang umum digunakan dalam PHP. Sebelumnya silahkan baca terlebih dahulu bagian part 1 agar lebih paham pada link berikut Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 2
strcmp(), strcasecmp(), strnatcmp(), strnatcasecmp(), strncmp(), dan strncasecmp()
Nama Fungsi | Sintaks | Deskripsi |
---|---|---|
strcmp() | strcmp($firstStringToCompare, $secondStringToCompare) | Membandingkan nilai dua buah string berdasarkan ASCII, bersifat case-sensitive. |
strcasecmp() | strcasecmp($firstStringToCompare, $secondStringToCompare) | Membandingkan nilai dua buah string berdasarkan ASCII, bersifat case-insensitive. |
strnatcmp() | strnatcmp($firstStringToCompare, $secondStringToCompare) | Membandingkan nilai dua buah string berdasarkan algoritma pengurutan natural, bersifat case-sensitive. |
strnatcasecmp() | strnatcasecmp($firstStringToCompare, $secondStringToCompare) | Membandingkan nilai dua buah string berdasarkan algoritma pengurutan natural, bersifat case-insensitive. |
strncmp() | strncmp($firstStringToCompare, $secondStringToCompare, $lengthUseToCompare) | Membandingkan nilai dua buah string dengan menentukan panjang dari string yang akan dibandingkan, bersifat case-sensitive. |
strncasecmp() | strncasecmp($firstStringToCompare, $secondStringToCompare, $lengthUseToCompare) | Membandingkan nilai dua buah string dengan menentukan panjang dari string yang akan dibandingkan, bersifat case-insensitive. |
Fungsi strcmp()
dan strcasecmp()
berlaku sejak PHP 4+, memiliki dua parameter wajib yang memuat nilai berupa string. Kedua fungsi ini mengembalikan nilai berupa:
0
jika nilai kedua string sama.> 0
jika nilai string pertama lebih besar daripada nilai string kedua.< 0
jika nilai string pertama lebih kecil daripada nilai string kedua.
Perbedaannya, strcmp()
bersifat case-sensitive dalam membandingkan, sedangkan strcasecmp()
bersifat case-insensitive. Mari kita perhatikan contoh penerapan fungsi tersebut pada kode berikut.
<?php
$game1 = "Clash Of Clans";
$game2 = "Clash Of Clans";
$game3 = "Clash of Clans";
$game4 = "Clash Royale";
$game5 = "Clash Royal";
$game6 = "Clash Royale Clans";
// strcmp() ~ case-sensitive
echo strcmp($game1, $game2); // Output: 0
echo strcmp($game1, $game3); // Output: -32
echo strcmp($game4, $game5); // Output: 1
echo strcmp($game4, $game6); // Output: -6
// strcasecmp() ~ case-sensitive
echo strcasecmp($game1, $game2); // Output: 0
echo strcasecmp($game1, $game3); // Output: 0
echo strcasecmp($game4, $game5); // Output: 1
echo strcasecmp($game4, $game6); // Output: -6
?>
Fungsi strnatcmp()
dan strnatcasecmp()
berlaku sejak PHP 4+, memiliki dua parameter wajib yang memuat nilai berupa string. Kedua fungsi ini memiliki nilai kembalian yang sama seperti strcmp()
dan strcasecmp()
. Hanya saja perbandingan fungsi strnatcmp()
dan strnatcasecmp()
menerapkan algoritma pengurutan natural. Fungsi strnatcmp()
bersifat case-sensitive, sedangkan fungsi strnatcasecmp()
bersifat case-insensitive. Mari kita perhatikan contoh penerapan fungsi-fungsi ini.
<?php
// strnatcmp() ~ case-sensitive & natural sort
echo strnatcmp("Nomor urut saya 2", "Nomor urut saya 10"); // Output: -1
echo strnatcmp("friends", "Friends"); // Output: 1
// strnatcasecmp() ~ case-insensitive & natural sort
echo strnatcasecmp("NomOr urut saYa 2", "Nomor urut saya 10"); // Output: -1
echo strnatcasecmp("friends", "Friends"); // Output: 0
?>
Apa itu algoritma pengurutan natural (natural sort)?
Natural sort merupakan metode pengurutan dalam urutan alfabet, kecuali bilangan multi-digit (diurutkan secara atomik/dianggap seolah-olah satu karakter). Urutan pada komputer umumnya menerapkan pengurutan alfabet murni. Misalnya, “z12” akan diurutkan sebelum “z3” oleh komputer, karena “1” dianggap bernilai lebih kecil dibandingkan “3”. Sedangkan ketika kita menggunakan natural sort, “z3” akan diurutkan sebelum “z12”, karena pengurutan berdasarkan “3” dan “12”.
Fungsi strncmp()
dan strncasecmp()
berlaku sejak PHP 4+, memiliki tiga parameter wajib. Kedua fungsi ini memiliki nilai kembalian yang sama seperti strcmp()
dan strcasecmp()
. Berikut keterangan mengenai parameter kedua fungsi ini.
$firstStringToCompare
menerima string pertama yang akan dibandingkan.$secondStringToCompare
menerima string kedua yang akan dibandingkan.$lengthUseToCompare
memuat nilai berupa integer yang digunakan untuk menentukan panjang string yang akan dibandingkan.
Fungsi strncmp()
bersifat case-sensitive, sedangkan strncasecmp()
bersifat case-insensitive. Mari kita perhatikan contoh penerapan fungsi-fungsi ini.
<?php
// strncmp() ~ case-sensitive
echo strncmp("Belajar Coding seru", "Belajar Coding seruuuuu", 11);
# Output: 0
echo strncmp("Belajar Coding seru", "Belajar COding seruuuuu", 11);
# Output: 1
// strncasecmp() ~ case-sensitive
echo strncasecmp("Belajar Coding seru", "Belajar Coding seruuuuu", 11);
# Output: 0
echo strncasecmp("Belajar Coding seru", "Belajar COding seruuuuu", 11);
# Output: 0
// 11 menandakan bahwa perbandingan kedua string hanya sepanjang 11 karakter dari kiri ("belajar cod")
?>
substr(), substr_compare(), substr_count(), dan substr_replace()
Nama Fungsi | Sintaks | Deskripsi |
---|---|---|
substr() | substr($string, $start, $length) | Mengambil bagian dari sebuah string. |
substr_compare() | substr_compare($string1, $string2, $start, $length, $case_insensitivity) | Membandingkan dua buah bagian string dari posisi dan panjang yang ditentukan. |
substr_count() | substr_count($haystack, $needle, $start, $length) | Memberi informasi sebanyak berapa kali $needle ditemukan dalam $haystack pada rentang posisi tertentu. |
substr_replace() | substr_replace($string, $replacement, $start, $length) | Mengganti bagian dari string dengan string lainnya. |
Fungsi substr()
telah ada sejak PHP versi 4+ dan mengembalikan nilai berupa string, string kosong, ataupun nilai false
(jika terjadi kesalahan). Berikut keterangan mengenai parameter fungsi ini.
$string
menerima string yang akan diolah$start
menerima nilai integer yang menunjukkan posisi awal fungsi harus bekerja dalam$string
.- Jika
$start
bernilai negatif, posisi bekerja dimulai dari nilai karakter terhitung dari akhir string. - Jika
$start
bernilai negatif namun melampaui posisi karakter negatif, fungsi akan mengembalikan string dari posisi awal. - Jika
$start
bernilai lebih besar dibanding panjang karakter$string
, nilaifalse
akan dikembalikan. - Jika
$start
bernilai sama dengan panjang karakter$string
, string kosong akan dikembalikan.
- Jika
$length
merupakan parameter opsional yang menerima nilai integer untuk menunjukkan seberapa banyak karakter yang harus diolah fungsi dari posisi$start
.- Jika
$length
bernilai negatif, fungsi akan mengembalikan string mulai dari posisi$start
hingga sebanyak$length
karakter dari akhir$string
. - Jika
$length
bernilai0
,false
, ataunull
, fungsi akan mengembalikan string kosong. - Jika nilai
$length
tidak ditentukan, secara default fungsi akan mengembalikan string dimulai dari$start
hingga akhir$string
.
- Jika
Mari kita perhatikan contoh penerapan substr()
pada kode berikut.
<?php
$alphabetList = "abcdefghijklmnopqrstuvwxyz";
var_dump(substr($alphabetList, 0));
# Output: string(26) "abcdefghijklmnopqrstuvwxyz"
var_dump(substr($alphabetList, 3));
# Output: string(23) "defghijklmnopqrstuvwxyz"
var_dump(substr($alphabetList, 26))
# Output: string(0) ""
var_dump(substr($alphabetList, 28));
# Output: bool(false)
var_dump(substr($alphabetList, -5));
# Output: string(5) "vwxyz"
var_dump(substr($alphabetList, -26));
# Output: string(26) "abcdefghijklmnopqrstuvwxyz"
var_dump(substr($alphabetList, -32));
# Output: string(26) "abcdefghijklmnopqrstuvwxyz"
var_dump(substr($alphabetList, 0, 0));
# Output: string(0) ""
var_dump(substr($alphabetList, 0, 4));
# Output: string(4) "abcd"
var_dump(substr($alphabetList, 0, -5));
# Output: string(21) "abcdefghijklmnopqrstu"
var_dump(substr($alphabetList, 10, -5));
# Output: string(11) "klmnopqrstu"
var_dump(substr($alphabetList, -10, -11));
# Output: string(0) ""
?>
Fungsi substr_compare()
berlaku sejak PHP versi 5+ dan memiliki parameter dengan keterangan sebagai berikut.
$string1
adalah string pertama yang akan dibandingkan.$string2
adalah string kedua yang akan dibandingkan.$start
memuat nilai integer yang menentukan posisi di mana perbandingan harus mulai dilakukan pada$string1
. Jika bernilai negatif, fungsi akan menghitung dari akhir string.$length
adalah parameter opsional yang memuat integer untuk menentukan berapa karakter$string1
untuk dibandingkan. Secara default, parameter ini mengambil banyak sisa karakter yang ada pada string.$case_insensitivity
menerima boolean untuk menentukan sifat case-insensitive. Parameter ini merupakan parameter opsional dan secara default bernilaifalse
, sehingga perbandingan bersifat case-sensitive.
Nilai kembalian fungsi substr_compare()
berupa:
0
jika dua bagian string bernilai sama.< 0
jika$string1
(dari posisi$start
) lebih kecil dari$string2
.> 0
jika$string1
(dari posisi$start
) lebih besar dari$string2
.
Jika parameter
$length
bernilai lebih kecil dari0
, fungsi akan mengembalikan peringatan.
Mari kita perhatikan contoh penerapannya pada kode berikut.
<?php
var_dump(substr_compare("Hello world", "world", 6));
# Output: int(0)
var_dump(substr_compare("Hello world", "Hello", 0));
# Output: int(6)
var_dump(substr_compare("Hello", "Helloooo", 0));
# Output: int(-3)
var_dump(substr_compare("world", "or", 1, 2));
# Output: int(0)
var_dump(substr_compare("world", "ld", -2, 2));
# Output: int(0)
var_dump(substr_compare("world", "Or", 1, 2, true));
# Output: int(0)
var_dump(substr_compare("Hello world", "Hello", 0, 0));
# Output: int(0)
var_dump(substr_compare("Hello world", "Hello", 0, -12));
# Output:
// Warning: substr_compare(): The length must be greater than or equal to zero....
// bool(false)
?>
Fungsi substr_count()
ada sejak PHP versi 4+ dan mengembalikan nilai berupa integer (jumlah $needle
pada $haystack
). Fungsi ini memiliki dua parameter wajib ($haystack
dan $needle
) dan dua parameter opsional ($start
dan $length
). Berikut keterangan parameter fungsi ini.
$haystack
memuat string sebagai wadah perhitungan jumlah$needle
.$needle
memuat string yang akan dihitung jumlahnya. Parameter ini bersifat case-sensitive.$start
memuat nilai integer yang menentukan posisi mulainya perhitungan. Jika bernilai negatif, perhitungan dimulai dari akhir string.$length
memuat nilai integer yang menentukan jumlah karakter maksimum dari$haystack
yang posisinya telah ditentukan oleh$start
. Jika bernilai negatif, fungsi akan menghitung dari akhir$haystack
dan memilih karakter tersebut sebagai akhir perhitungan.
Fungsi substr_count()
tidak menghitung sub-string yang saling tumpang tindih.
Mari kita perhatikan contoh kode berikut.
<?php
$text = 'Terus bergerak! Terus melangkah!';
# jumlah karakter 32
echo substr_count($text, 'Terus');
# Output: 2
echo substr_count($text, 'Terus', 4);
# Output: 1
echo substr_count($text, 'Terus', 4, 4);
# Output: 0
echo substr_count($text, 'Terus', 4, 50);
# Output: Warning: substr_count(): Invalid length value...
echo substr_count('abcabcab', 'abcab');
# Output: 1
?>
Fungsi substr_replace()
berlaku sejak PHP versi 4+, memiliki hasil kembalian berupa string atau array tergantung parameter yang dimuat. Berikut keterangan dari parameter fungsi ini.
$string
bertujuan untuk menentukan string atau array kumpulan string yang akan diolah.$replacement
bertujuan untuk menentukan string pengganti.$start
bertujuan untuk menentukan posisi mulainya penggantian string.- Jika bernilai
> 0
, penggantian string terjadi mulai dari posisi tersebut dihitung dari awal string. - Jika bernilai
< 0
, penggantian string terjadi mulai dari posisi tersebut dihitung dari akhir string. - Jika bernilai
0
, penggantian terjadi dari awalan string.
- Jika bernilai
$length
merupakan parameter opsional yang bertujuan untuk menentukan jumlah karakter yang akan diganti. Secara default, nilainya sama dengan panjang karakter dalam$string
.- Jika bernilai
> 0
, penggantian string sebanyak$length
karakter. - Jika bernilai
< 0
, penggantian string menyisakan sebanyak$length
karakter akhir string. - Jika bernilai
0
, fungsi akan menambah string dari posisi$start
.
- Jika bernilai
Mari kita perhatikan contoh kode berikut.
<?php
var_dump(substr_replace("Hello World!", "Kawan!", 0));
var_dump(substr_replace("Hello World!", "Kawan!", 6));
var_dump(substr_replace("Hello World!", "Kawan!", -5));
var_dump(substr_replace("Kawan!", "Hello ", 0, 0));
var_dump(substr_replace("Kawan!", "Hello ", 0, -2));
var_dump(substr_replace("Kawan!", "Hello ", 0, 3));
$arrayToReplace = ["1: AAA", "2: AAA", "3: AAA"];
var_dump(substr_replace($arrayToReplace, '-', 0, 3));
var_dump(substr_replace($arrayToReplace, 'BBB', 3, 3));
?>
string(6) "Kawan!"
string(12) "Hello Kawan!"
string(13) "Hello WKawan!"
string(12) "Hello Kawan!"
string(8) "Hello n!"
string(9) "Hello an!"
array(3) {
[0]=>
string(4) "-AAA"
[1]=>
string(4) "-AAA"
[2]=>
string(4) "-AAA"
}
array(3) {
[0]=>
string(6) "1: BBB"
[1]=>
string(6) "2: BBB"
[2]=>
string(6) "3: BBB"
}
Jika
$start
adalah angka negatif dan$length
lebih kecil atau sama dengan$start
,$length
menjadi 0.
explode() dan implode()
Nama Fungsi | Sintaks | Deskripsi |
---|---|---|
explode() | explode($separator, $string, $limit) | Memecah string menjadi array. |
implode() alias join() | implode($glue, $array) alias join($glue, $array) | Menggabungkan anggota-anggota array menjadi string. |
Berikut keterangan dari parameter-parameter fungsi explode()
.
$seperator
merupakan parameter yang digunakan untuk mengenal pemisah antarkata.$string
merupakan parameter yang berisi string yang nantinya akan dipecah menjadi array.$limit
merupakan parameter yang berisi batasan jumlah array yang akan dibuat dari string. Parameter ini bersifat opsional.- Jika
$limit
diisi nilai positif, jumlah array akan mengikuti nilai yang ditetapkan. - Jika
$limit
diisi nilai negatif, jumlah array akan mengikuti nilai yang kita tetapkan dan membuang sebanyak$limit
anggota terakhir. - Jika
$limit
diisi dengan0
, fungsi akan menghasilkan array dengan 1 anggota saja.
- Jika
Mari kita perhatikan contoh kode berikut.
<?php
$fruits = 'Apple,Pineapple,Apricot,Grapes';
print_r(explode(',', $fruits));
print_r(explode(',', $fruits, 0));
print_r(explode(',', $fruits, 3));
print_r(explode(',', $fruits, -2));
?>
Array
(
[0] => Apple
[1] => Pineapple
[2] => Apricot
[3] => Grapes
)
Array
(
[0] => Apple,Pineapple,Apricot,Grapes
)
Array
(
[0] => Apple
[1] => Pineapple
[2] => Apricot,Grapes
)
Array
(
[0] => Apple
[1] => Pineapple
)
Ketika kita tidak menetapkan
$limit
pada fungsiexplode()
, fungsi tersebut akan membentuk array dengan anggota sebanyak mungkin sesuai pemecahan string berdasarkan pemisahnya.
Fungsi implode()
alias join()
memiliki cara kerja yang berlawanan dengan fungsi explode()
. Berikut keterangan parameter fungsi ini.
$glue
merupakan parameter berisi string yang berfungsi sebagai penghubung/pelekat antaranggota elemen dari$array
. Parameter ini bersifat opsional dan memiliki nilai default""
(string kosong).$array
merupakan parameter wajib yang memuat array yang akan digabung anggotanya menjadi sebuah string.
Mari kita lihat contoh penerapan fungsi ini pada kode berikut.
<?php
$transports = ['Bus', 'Car', 'Train', 'Plane'];
echo implode($transports);
echo join($transports);
# Output: BusCarTrainPlane
echo implode(" ", $transports);
echo join(" ", $transports);
# Output: Bus Car Train Plane
echo implode("+", $transports);
echo join("+", $transports);
# Output: Bus+Car+Train+Plane
?>
Pengayaan
Nama Fungsi | Sintaks | Deskripsi |
---|---|---|
nl2br() | nl2br($string, $xhtml) | Mengonversi newlines (\r\n , \n\r , \n , dan \r ) menjadi HTML line breaks (<br/> atau <br> ). |
parse_str() | parse_str($string, $result) | Mengubah string query menjadi variabel. |
Fungsi nl2br()
telah ada sejak PHP versi 4+, memiliki satu parameter wajib ($string
) dan satu parameter opsional ($xhtml
). Parameter opsional tersebut baru ditambahkan sejak PHP versi 5.3 dan hanya dapat menerima nilai boolean. Parameter ini bertujuan untuk menentukan tag HTML line breaks jenis mana yang dipergunakan, <br/>
jika $xhtml
bernilai true
, dan <br>
jika sebaliknya. Secara default, parameter $xhtml
bernilai true
.
Dalam PHP, tampilan output dilakukan pada browser dan diinterpretasikan sebagai HTML. Pada markup language ini, kita tidak dapat mengubah tampilan dengan menambah extra spaces atau extra lines. Browser secara otomatis akan menghapus extra spaces atau extra lines saat halaman ditampilkan. Hal ini mengakibatkan output sulit terbaca.
Untuk itu, pembacaan output yang “readable” dapat dilakukan dengan View Source (menggunakan shortcut Ctrl + U pada PC, ⌘ + U atau ⌥ + ⌘ + U pada Mac, disesuaikan dengan browser yang digunakan).
<?php
$twoLineText = "First Line.\nSecond Line.";
echo nl2br($twoLineText);
echo nl2br($twoLineText, false);
?>
First Line.<br />
Second Line.
First Line.<br>
Second Line.
Fungsi parse_str()
telah ada sejak PHP versi 4+ dan tidak memiliki nilai kembalian karena nilai-nilai pada string query dimuatkan pada variabel-variabel. Fungsi ini menerima parameter $string
berupa string query dan parameter $result
yang dapat memuat array. Jika kita memuat $result
dengan nama variabel, otomatis variabel tersebut akan menjadi array dengan elemen-elemen yang memiliki key berupa nama string query dan value berupa nilai dari string query tersebut. Parameter $result
berlaku sejak PHP 4.0.3 dan bersifat wajib sejak PHP 7.2.0. Mari kita perhatikan contoh berikut.
<?php
parse_str("name=Budi&hobby=Badminton");
parse_str("name=Budi&hobby=Badminton", $biodata);
echo $name;
echo $hobby;
print_r($biodata)
?>
Budi
Badminton
Array
(
[name] => Budi
[hobby] => Badminton
)
Nama Fungsi | Syntax | Deskripsi |
---|---|---|
htmlentities() | htmlentities($string, $flags, $characterSet, $doubleEncode) | Mengubah karakter-karakter menjadi HTML entities. |
htmlspecialchars() | htmlspecialchars($string, $flags, $characterSet, $doubleEncode) | Mengubah karakter spesial menjadi HTML entities. |
html_entity_decode() | html_entity_decode($input_string, $flags, $encoding) | Mengubah HTML entities menjadi karakter yang sesuai. |
htmlspecialchars_decode() | htmlspecialchars_decode($string, $flags) | Mengubah HTML entities khusus kembali menjadi karakter khusus. |
strip_tags() | strip_tags($string, $allowable_tags) | Menghilangkan semua tag HTML dan PHP dari sebuah string. |
Fungsi htmlentities()
berlaku sejak PHP versi 4+ dan menghasilkan kembalian berupa string yang telah dikonversi ke bentuk HTML entities. Berikut keterangan parameter dari fungsi htmlentities()
.
$string
berisi teks yang akan dikonversi dan merupakan parameter wajib.$flags
berisi pilihan yang menentukan penanganan kutipan, pengkodean tidak valid, dan doctype. Parameter ini bersifat opsional.- Penanganan kutipan
ENT_COMPAT
- Mengubah tanda kutip ganda, merupakan parameter secara default.ENT_QUOTES
- Mengubah tanda kutip ganda dan tanda kutip.ENT_NOQUOTES
- Tidak mengubah tanda kutip.
- Pengkodean tidak valid
ENT_IGNORE
- Mengabaikan pengkodean yang tidak valid sehingga fungsi tidak mengembalikan string kosong. Sebaiknya dihindari karena mungkin memiliki implikasi keamanan.ENT_SUBSTITUTE
- Mengganti pengkodean yang tidak valid dengan Unicode Replacement Character U+FFFD (UTF-8) atau &#FFFD sehingga fungsi tidak mengembalikan string kosong.ENT_DISALLOWED
- Mengganti poin kode yang tidak valid untuk jenis dokumen yang diberikan dengan Unicode Replacement Character U+FFFD (UTF-8) atau &#FFFD. Hal ini mungkin berguna, misalnya untuk memastikan format yang baik dari dokumen XML dengan konten eksternal yang disematkan.
- Penanganan doctype
ENT_HTML401
- Penanganan kode seperti HTML 4.01, merupakan parameter secara default.ENT_HTML5
- Penanganan kode seperti HTML 5.ENT_XML1
- Penanganan kode seperti XML 1.ENT_XHTML
- Penanganan kode seperti XHTML.
- Penanganan kutipan
$characterSet
memuat string yang menentukan character set yang akan digunakan. Character set yang didukung antara lain:UTF-8
ISO-8859-1
ISO-8859-15
cp866
cp1251
cp1252
KOI8-R
BIG5
GB2312
BIG5-HKSCS
Shift_JIS
EUC-JP
MacRoman
Character set yang tidak dikenali akan diabaikan dan diganti dengan ISO-8859-1 untuk versi sebelum PHP 5.4. Mulai PHP 5.4, character set yang tidak dikenali akan diabaikan dan digantikan oleh UTF-8.
$doubleEncode
adalah parameter boolean yang akan mengonversi segalanya jikatrue
dan tidak akan mengonversi HTML entities yang sudah ada jikafalse
. Secara default, parameter ini bernilaitrue
.
Jika parameter $string
berisi encoding yang tidak valid, fungsi akan mengembalikan string kosong, terkecuali jika $flags
diatur sebagai ENT_IGNORE
atau ENT_SUBSTITUTE
. Mari kita perhatikan contoh penerapan htmlentities()
pada kode berikut.
<?php
$thermodynamics = '"ΔU"';
echo htmlentities($thermodynamics);
// Output pada View Source: "ΔU"quot;
?>
Fungsi htmlspecialchars()
memiliki cara kerja yang mirip dan parameter yang sama dengan fungsi htmlentities()
, tetapi fungsi ini hanya akan mengonversi karakter &
(ampersand), "
(double quote), '
(single quote), <
(less than), dan >
(greater than). Mari kita perhatikan contoh penerapannya pada kode berikut.
<?php
$strongThermodynamics = '<strong>"ΔU"</strong>';
echo htmlspecialchars($strongThermodynamics);
// Output pada View Source: <strong>"ΔU"</strong>gt;
Fungsi html_entity_decode()
memiliki cara kerja yang berlawanan dengan fungsi htmlentities()
. Berikut ini merupakan keterangan dari parameter fungsi tersebut.
$input_string
merupakan parameter yang berisi string yang akan diolah hasilnya. Parameter ini bersifat wajib.$flags
merupakan parameter opsional yang menentukan bentuk tanda petik (""
). Parameter ini memiliki beberapa nilai, antara lain:- Penanganan kutipan
ENT_COMPAT
- Hanya mengonversi petik ganda, merupakan parameter default.ENT_QUOTES
- Mengonversi petik ganda maupun tunggal.ENT_NOQUOTES
- Tidak mengonversi petik ganda maupun tunggal.
- Penanganan doctype
ENT_HTML401
- Penanganan kode seperti HTML 4.01, merupakan parameter secara default.ENT_HTML5
- Penanganan kode seperti HTML 5.ENT_XML1
- Penanganan kode seperti XML 1.ENT_XHTML
- Penanganan kode seperti XHTML.
- Penanganan kutipan
$encoding
merupakan parameter untuk memilih character set dan bersifat opsional. Nilai parameter ini diantaranya:UTF-8
ISO-8859-1
ISO-8859-15
cp866
cp1251
cp1252
KOI8-R
BIG5
GB2312
BIG5-HKSCS
Shift_JIS
EUC-JP
MacRoman
Character set yang tidak dikenali akan diabaikan dan diganti dengan ISO-8859-1 untuk versi sebelum PHP 5.4. Mulai PHP 5.4, character set yang tidak dikenali akan diabaikan dan digantikan oleh UTF-8.
Mari kita perhatikan contoh penerapan fungsi html_entity_decode()
.
<?php
$greet = "Hello "Reader", have a nice day @informatika.web.id!";
echo(html_entity_decode($greet));
// Output: Hello "Reader", have a nice day @informatika.web.id!
?>
Fungsi htmlspecialchars_decode()
memiliki cara kerja yang berlawanan dengan fungsi htmlspecialchars()
. Fungsi ini memiliki parameter $string
dan $flags
yang sama dengan fungsi html_entity_decode()
. Hanya saja entities yang dikonversi adalah &
, "
(ketika ENT_NOQUOTES
tidak ditetapkan), '
(ketika ENT_QUOTES
ditetapkan), <
dan >
. Mari kita perhatikan contoh penerapannya pada kode berikut.
<?php
$textInHTML = ""Ini" merupakan tulisan yang <strong>STRONG</strong>";
echo(htmlspecialchars_decode($textInHTML));
// Output pada View Source: "Ini" merupakan tulisan yang <strong>STRONG</strong>
?>
Fungsi strip_tags()
memiliki dua parameter. Parameter pertama ($string
) memuat string yang akan dihilangkan tag HTML-nya. Parameter kedua ($allowable-text
) berisi tag-tag yang tidak boleh dihilangkan/dihapus, bersifat opsional, dan dapat menerima string hingga array (sejak PHP 7.4.0). Sebagai tambahan, comments pada HTML akan selalu dihilangkan dan tidak dapat dihindari dengan parameter $allowable-text
. Mari kita perhatikan contoh penerapannya.
<?php
$introduce = '<h4>Hello my name is <em>Mileney</em>.</h4>';
echo(strip_tags($introduce));
echo(strip_tags($introduce, '<em>'));
echo(strip_tags($introduce, ['<h4>', '<em>']));
?>
Output pada View Source:
Hello my name is Mileney.
Hello my name is <em>Mileney</em>.
<h4>Hello my name is <em>Mileney</em>.</h4>
Posting Komentar untuk "Belajar PHP: Bekerja Dengan Tipe Data String PHP Part 3"