PHP #13 - Bekerja dengan String (Bag. II)

22 Sep 2020 • ⏳ ~ 18 menit

 

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.

ord() dan chr()

Nama FungsiSintaksDeskripsi
ord()ord($string)Mengubah nilai string menjadi nilai ASCII.
chr()chr($ASCII)Mengubah nilai ASCII menjadi nilai karakter.

ASCII (American Standard Code for Information Interchange) adalah standar pengkodean karakter untuk alat komunikasi, mewakili teks dalam komputer, peralatan telekomunikasi, dan perangkat lainnya.

Fungsi ord() menerima nilai berupa string, lebih tepatnya hanya 1 karakter pertama dari string tersebut dan mengonversikannya ke nilai ASCII. Hasil kembalian konversi berupa integer. Fungsi ini berlaku sejak PHP versi 4+. Berikut contoh penerapan ord().

<?php
  $stringValue = "Informatika";
  $charValue = "I";
  
  var_dump(ord($charValue));       // Output: int(73) 
  var_dump(ord($stringValue));     // Output: int(73)
?>

Fungsi chr() berlaku sejak PHP versi 4+, menerima parameter berupa integer dari bilangan ASCII dan mengonversikannya menjadi karakter. Bilangan ASCII dapat ditulis dalam bentuk decimal, octal (awalan 0), dan hexadecimal (awalan 0x). Mari kita lihat contoh penerapan chr() pada kode berikut.

<?php
  $decimal = 73;
  $octal = 073;     
  $hex = 0x73;

  var_dump(chr($decimal));       // Output: string(1) "I"
  var_dump(chr($octal));         // Output: string(1) ";"
  var_dump(chr($hex));           // Output: string(1) "s"
?>

strrev(), strlen(), count_chars(), dan str_word_count()

Nama FungsiSintaksDeskripsi
strrev()strrev($string)Membalikkan setiap urutan karakter dari sebuah string (reverse).
strlen()strlen($string)Menghitung panjang karakter pada sebuah string, termasuk karakter khusus dan spasi. Hasil kembalian berupa integer.
count_chars()count_chars($string, $mode)Menghitung banyaknya setiap karakter yang muncul dalam sebuah string. Parameter $mode bersifat opsional dan dapat memuat nilai integer 0 (default) hingga 4.
str_word_count()str_word_count($string, $format, $charlist)Menghitung jumlah kata dalam sebuah string.

Mari kita lihat contoh penerapan strrev() dan strlen().

<?php
  # strrev()
  $greetYou = "Hello there";
  var_dump(strrev($greetYou));
  // Output: string(11) "ereht olleH"


  # strlen()
  $letsCount = "One Two Three";
  var_dump(strlen($letsCount));
  // Output: int(13)
?>

Pada count_chars() terdapat parameter $mode yang dapat diisi dengan beberapa nilai, antara lain:

  • 0 : Mengembalikan array yang isinya merupakan semua karakter yang ada, dengan bilangan ASCII sebagai key dan jumlah karakter terhitung sebagai value. Nilai ini merupakan nilai default dari $mode.
  • 1 : Mirip seperti mode 0, tetapi array yang dihasilkan hanya memuat key dengan syarat jumlah karakter terhitung lebih dari 0.
  • 2 : Mirip seperti mode 0, tetapi array yang dihasilkan hanya memuat key dengan syarat jumlah karakter terhitung sama dengan 0.
  • 3 : Mengembalikan string semua karakter yang tertera pada parameter $string dan terurut secara otomatis.
  • 4 : Mengembalikan string semua karakter yang tidak tertera pada parameter $string dan terurut secara otomatis.

Mari kita lihat contoh penerapan count_chars() dengan beberapa mode.

$mode = 0

<?php
  $str = "Hello World";
  var_dump(count_chars($str, 0));
?>
array(256) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) [15]=> int(0) [16]=> int(0) [17]=> int(0) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> int(0) [23]=> int(0) [24]=> int(0) [25]=> int(0) [26]=> int(0) [27]=> int(0) [28]=> int(0) [29]=> int(0) [30]=> int(0) [31]=> int(0) [32]=> int(1) [33]=> int(0) [34]=> int(0) [35]=> int(0) [36]=> int(0) [37]=> int(0) [38]=> int(0) [39]=> int(0) [40]=> int(0) [41]=> int(0) [42]=> int(0) [43]=> int(0) [44]=> int(0) [45]=> int(0) [46]=> int(0) [47]=> int(0) [48]=> int(0) [49]=> int(0) [50]=> int(0) [51]=> int(0) [52]=> int(0) [53]=> int(0) [54]=> int(0) [55]=> int(0) [56]=> int(0) [57]=> int(0) [58]=> int(0) [59]=> int(0) [60]=> int(0) [61]=> int(0) [62]=> int(0) [63]=> int(0) [64]=> int(0) [65]=> int(0) [66]=> int(0) [67]=> int(0) [68]=> int(0) [69]=> int(0) [70]=> int(0) [71]=> int(0) [72]=> int(1) [73]=> int(0) [74]=> int(0) [75]=> int(0) [76]=> int(0) [77]=> int(0) [78]=> int(0) [79]=> int(0) [80]=> int(0) [81]=> int(0) [82]=> int(0) [83]=> int(0) [84]=> int(0) [85]=> int(0) [86]=> int(0) [87]=> int(1) [88]=> int(0) [89]=> int(0) [90]=> int(0) [91]=> int(0) [92]=> int(0) [93]=> int(0) [94]=> int(0) [95]=> int(0) [96]=> int(0) [97]=> int(0) [98]=> int(0) [99]=> int(0) [100]=> int(1) [101]=> int(1) [102]=> int(0) [103]=> int(0) [104]=> int(0) [105]=> int(0) [106]=> int(0) [107]=> int(0) [108]=> int(3) [109]=> int(0) [110]=> int(0) [111]=> int(2) [112]=> int(0) [113]=> int(0) [114]=> int(1) [115]=> int(0) [116]=> int(0) [117]=> int(0) [118]=> int(0) [119]=> int(0) [120]=> int(0) [121]=> int(0) [122]=> int(0) [123]=> int(0) [124]=> int(0) [125]=> int(0) [126]=> int(0) [127]=> int(0) [128]=> int(0) [129]=> int(0) [130]=> int(0) [131]=> int(0) [132]=> int(0) [133]=> int(0) [134]=> int(0) [135]=> int(0) [136]=> int(0) [137]=> int(0) [138]=> int(0) [139]=> int(0) [140]=> int(0) [141]=> int(0) [142]=> int(0) [143]=> int(0) [144]=> int(0) [145]=> int(0) [146]=> int(0) [147]=> int(0) [148]=> int(0) [149]=> int(0) [150]=> int(0) [151]=> int(0) [152]=> int(0) [153]=> int(0) [154]=> int(0) [155]=> int(0) [156]=> int(0) [157]=> int(0) [158]=> int(0) [159]=> int(0) [160]=> int(0) [161]=> int(0) [162]=> int(0) [163]=> int(0) [164]=> int(0) [165]=> int(0) [166]=> int(0) [167]=> int(0) [168]=> int(0) [169]=> int(0) [170]=> int(0) [171]=> int(0) [172]=> int(0) [173]=> int(0) [174]=> int(0) [175]=> int(0) [176]=> int(0) [177]=> int(0) [178]=> int(0) [179]=> int(0) [180]=> int(0) [181]=> int(0) [182]=> int(0) [183]=> int(0) [184]=> int(0) [185]=> int(0) [186]=> int(0) [187]=> int(0) [188]=> int(0) [189]=> int(0) [190]=> int(0) [191]=> int(0) [192]=> int(0) [193]=> int(0) [194]=> int(0) [195]=> int(0) [196]=> int(0) [197]=> int(0) [198]=> int(0) [199]=> int(0) [200]=> int(0) [201]=> int(0) [202]=> int(0) [203]=> int(0) [204]=> int(0) [205]=> int(0) [206]=> int(0) [207]=> int(0) [208]=> int(0) [209]=> int(0) [210]=> int(0) [211]=> int(0) [212]=> int(0) [213]=> int(0) [214]=> int(0) [215]=> int(0) [216]=> int(0) [217]=> int(0) [218]=> int(0) [219]=> int(0) [220]=> int(0) [221]=> int(0) [222]=> int(0) [223]=> int(0) [224]=> int(0) [225]=> int(0) [226]=> int(0) [227]=> int(0) [228]=> int(0) [229]=> int(0) [230]=> int(0) [231]=> int(0) [232]=> int(0) [233]=> int(0) [234]=> int(0) [235]=> int(0) [236]=> int(0) [237]=> int(0) [238]=> int(0) [239]=> int(0) [240]=> int(0) [241]=> int(0) [242]=> int(0) [243]=> int(0) [244]=> int(0) [245]=> int(0) [246]=> int(0) [247]=> int(0) [248]=> int(0) [249]=> int(0) [250]=> int(0) [251]=> int(0) [252]=> int(0) [253]=> int(0) [254]=> int(0) [255]=> int(0) }

$mode = 1

<?php
  $str = "Hello World";
  var_dump(count_chars($str, 1));
?>
array(8) { [32]=> int(1) [72]=> int(1) [87]=> int(1) [100]=> int(1) [101]=> int(1) [108]=> int(3) [111]=> int(2) [114]=> int(1) }

$mode = 2

<?php
  $str = "Hello World";
  var_dump(count_chars($str, 2));
?>
array(248) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) [4]=> int(0) [5]=> int(0) [6]=> int(0) [7]=> int(0) [8]=> int(0) [9]=> int(0) [10]=> int(0) [11]=> int(0) [12]=> int(0) [13]=> int(0) [14]=> int(0) [15]=> int(0) [16]=> int(0) [17]=> int(0) [18]=> int(0) [19]=> int(0) [20]=> int(0) [21]=> int(0) [22]=> int(0) [23]=> int(0) [24]=> int(0) [25]=> int(0) [26]=> int(0) [27]=> int(0) [28]=> int(0) [29]=> int(0) [30]=> int(0) [31]=> int(0) [33]=> int(0) [34]=> int(0) [35]=> int(0) [36]=> int(0) [37]=> int(0) [38]=> int(0) [39]=> int(0) [40]=> int(0) [41]=> int(0) [42]=> int(0) [43]=> int(0) [44]=> int(0) [45]=> int(0) [46]=> int(0) [47]=> int(0) [48]=> int(0) [49]=> int(0) [50]=> int(0) [51]=> int(0) [52]=> int(0) [53]=> int(0) [54]=> int(0) [55]=> int(0) [56]=> int(0) [57]=> int(0) [58]=> int(0) [59]=> int(0) [60]=> int(0) [61]=> int(0) [62]=> int(0) [63]=> int(0) [64]=> int(0) [65]=> int(0) [66]=> int(0) [67]=> int(0) [68]=> int(0) [69]=> int(0) [70]=> int(0) [71]=> int(0) [73]=> int(0) [74]=> int(0) [75]=> int(0) [76]=> int(0) [77]=> int(0) [78]=> int(0) [79]=> int(0) [80]=> int(0) [81]=> int(0) [82]=> int(0) [83]=> int(0) [84]=> int(0) [85]=> int(0) [86]=> int(0) [88]=> int(0) [89]=> int(0) [90]=> int(0) [91]=> int(0) [92]=> int(0) [93]=> int(0) [94]=> int(0) [95]=> int(0) [96]=> int(0) [97]=> int(0) [98]=> int(0) [99]=> int(0) [102]=> int(0) [103]=> int(0) [104]=> int(0) [105]=> int(0) [106]=> int(0) [107]=> int(0) [109]=> int(0) [110]=> int(0) [112]=> int(0) [113]=> int(0) [115]=> int(0) [116]=> int(0) [117]=> int(0) [118]=> int(0) [119]=> int(0) [120]=> int(0) [121]=> int(0) [122]=> int(0) [123]=> int(0) [124]=> int(0) [125]=> int(0) [126]=> int(0) [127]=> int(0) [128]=> int(0) [129]=> int(0) [130]=> int(0) [131]=> int(0) [132]=> int(0) [133]=> int(0) [134]=> int(0) [135]=> int(0) [136]=> int(0) [137]=> int(0) [138]=> int(0) [139]=> int(0) [140]=> int(0) [141]=> int(0) [142]=> int(0) [143]=> int(0) [144]=> int(0) [145]=> int(0) [146]=> int(0) [147]=> int(0) [148]=> int(0) [149]=> int(0) [150]=> int(0) [151]=> int(0) [152]=> int(0) [153]=> int(0) [154]=> int(0) [155]=> int(0) [156]=> int(0) [157]=> int(0) [158]=> int(0) [159]=> int(0) [160]=> int(0) [161]=> int(0) [162]=> int(0) [163]=> int(0) [164]=> int(0) [165]=> int(0) [166]=> int(0) [167]=> int(0) [168]=> int(0) [169]=> int(0) [170]=> int(0) [171]=> int(0) [172]=> int(0) [173]=> int(0) [174]=> int(0) [175]=> int(0) [176]=> int(0) [177]=> int(0) [178]=> int(0) [179]=> int(0) [180]=> int(0) [181]=> int(0) [182]=> int(0) [183]=> int(0) [184]=> int(0) [185]=> int(0) [186]=> int(0) [187]=> int(0) [188]=> int(0) [189]=> int(0) [190]=> int(0) [191]=> int(0) [192]=> int(0) [193]=> int(0) [194]=> int(0) [195]=> int(0) [196]=> int(0) [197]=> int(0) [198]=> int(0) [199]=> int(0) [200]=> int(0) [201]=> int(0) [202]=> int(0) [203]=> int(0) [204]=> int(0) [205]=> int(0) [206]=> int(0) [207]=> int(0) [208]=> int(0) [209]=> int(0) [210]=> int(0) [211]=> int(0) [212]=> int(0) [213]=> int(0) [214]=> int(0) [215]=> int(0) [216]=> int(0) [217]=> int(0) [218]=> int(0) [219]=> int(0) [220]=> int(0) [221]=> int(0) [222]=> int(0) [223]=> int(0) [224]=> int(0) [225]=> int(0) [226]=> int(0) [227]=> int(0) [228]=> int(0) [229]=> int(0) [230]=> int(0) [231]=> int(0) [232]=> int(0) [233]=> int(0) [234]=> int(0) [235]=> int(0) [236]=> int(0) [237]=> int(0) [238]=> int(0) [239]=> int(0) [240]=> int(0) [241]=> int(0) [242]=> int(0) [243]=> int(0) [244]=> int(0) [245]=> int(0) [246]=> int(0) [247]=> int(0) [248]=> int(0) [249]=> int(0) [250]=> int(0) [251]=> int(0) [252]=> int(0) [253]=> int(0) [254]=> int(0) [255]=> int(0) }

$mode = 3

<?php
  $str = "Hello World";
  var_dump(count_chars($str, 3));
?>
string(8) " HWdelor"

$mode = 4

<?php
  $str = "Hello World";
  var_dump(count_chars($str, 4));
?>
string(248) "  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGIJKLMNOPQRSTUVXYZ[\]^_`abcfghijkmnpqstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������"

Pada str_word_count(), parameter $format dan $charlist bersifat opsional. Secara default, $format bernilai 0 dan hanya menerima nilai berupa integer. Berikut nilai-nilai yang dapat diisi dalam parameter $format.

  • 0 : mengembalikan jumlah kata yang terhitung.
  • 1 : mengembalikan numeric array dengan anggota berupa setiap kata yang ada pada string.
  • 2 : mirip seperti format 1, hanya saja key dari setiap anggotanya (kata) merupakan posisi dari kata itu sendiri.

Sedangkan, parameter $charlist memuat nilai berupa string yang mengidentifikasi karakter khusus apa yang dapat dinilai sebagai kata. Berikut contoh penerapan str_word_count().

Tanpa $charlist

<?php
  $str = "You & I ...";

  var_dump(str_word_count($str));
  var_dump(str_word_count($str, 1));
  var_dump(str_word_count($str, 2));
?>
int(2)

array(2) {
  [0]=>
  string(3) "You"
  [1]=>
  string(1) "I"
}

array(2) {
  [0]=>
  string(3) "You"
  [6]=>
  string(1) "I"
}

$charlist = '&'

<?php
  $str = "You & I ...";

  var_dump(str_word_count($str, 0, '&'));
  var_dump(str_word_count($str, 1, '&'));
  var_dump(str_word_count($str, 2, '&'));
?>
int(3)

array(3) {
  [0]=>
  string(3) "You"
  [1]=>
  string(1) "&"
  [2]=>
  string(1) "I"
}

array(3) {
  [0]=>
  string(3) "You"
  [4]=>
  string(1) "&"
  [6]=>
  string(1) "I"
}

$charlist = '.'

<?php
  $str = "You & I ...";

  var_dump(str_word_count($str, 0, '.'));
  var_dump(str_word_count($str, 1, '.'));
  var_dump(str_word_count($str, 2, '.'));
?>
int(3)

array(3) {
  [0]=>
  string(3) "You"
  [1]=>
  string(1) "I"
  [2]=> 
  string(3) "..."
}

array(3) {
  [0]=>
  string(3) "You"
  [6]=>
  string(1) "I"
  [8]=>
  string(3) "..."
}

str_pad(), str_repeat(), str_shuffle(), str_split(), dan chunk_split()

Nama FungsiSintaksDeskripsi
str_pad()str_pad($stringToPad, $length, $stringToUse, $padType)Menambahkan string baru pada string lainnya sebanyak sisa karakter yang ada.
str_repeat()str_repeat($stringToRepeat, $numberOfRepeat)Mengulangi string sebanyak jumlah repetisi yang ditentukan.
str_shuffle()str_shuffle($stringToShuffle)Mengacak susunan karakter yang terdapat pada sebuah string.
str_split()str_split($stringToSplit, $splitLength)Mengubah sebuah string menjadi array.
chunk_split()chunk_split($stringToSplit, $chunkLength, $endOfChunk)Membagi sebuah string menjadi potongan/bagian yang lebih kecil.

Fungsi str_pad() berlaku sejak PHP 4. Nilai yang dikembalikan fungsi ini berupa string. Berikut penjelasan mengenai parameter dalam fungsi str_pad().

  • $stringToPad adalah string yang akan ditambahkan ukurannya.
  • $length adalah panjang ukuran baru yang akan dihasilkan dari fungsi ini. Jika nilai parameter ini kurang dari panjang awal $stringToPad, tidak akan terjadi penambahan apapun.
  • $stringToUse adalah string yang akan ditambahkan ke dalam $stringToPad, merupakan parameter opsional. Secara default, parameter ini bernilai whitespace (spasi).
  • $padType adalah tipe arah penambahan string yang akan dilakukan. Terdapat 3 jenis $padType, yaitu STR_PAD_BOTH (kiri-kanan), STR_PAD_LEFT (kiri), dan STR_PAD_RIGHT (kanan). Parameter $padType bersifat opsional dan secara default bernilai STR_PAD_RIGHT.

Mari kita perhatikan contoh-contoh penerapan str_pad() berikut.

<?php
  $number = "726";
  
  var_dump(str_pad($number, 5));
  // Output: string(5) "726 "

  var_dump(str_pad($number, 6, "0", STR_PAD_LEFT));
  // Output: string(6) "000726"

  var_dump(str_pad($number, 5, "0", STR_PAD_RIGHT));
  // Output: string(5) "72600"

  var_dump(str_pad($number, 7, "00", STR_PAD_BOTH));
  // Output: string(7) "0072600"
?>

Fungsi str_repeat() dan str_shuffle() akan mengembalikan nilai berupa string. Fungsi str_shuffle() ada sejak PHP 4.3.0+, sedangkan str_repeat() berlaku sejak PHP 4. Fungsi str_repeat() menerima parameter berupa string yang akan direpetisi ($stringToRepeat) sebanyak jumlah repetisi dalam nilai integer ($numberOfRepeat). Sedangkan, str_shuffle() menerima nilai berupa string ($stringToShuffle) yang nantinya akan diacak setiap karakternya. Mari kita perhatikan contoh penerapan kedua fungsi string ini.

<?php 
  var_dump(str_repeat("Animal.", 5));
  // Output: string(35) "Animal.Animal.Animal.Animal.Animal."

  var_dump(str_shuffle('Hello my name is Billy.'));
  // Output dapat berbeda-beda karena string tersebut diacak karakternya.
  // Contoh output: string(23) "n omely semlaiyB i.ll H"
?>

Fungsi str_split() ada sejak PHP 5+, mengembalikan nilai berupa array dari hasil pemotongan string sebagai anggotanya. Fungsi str_split() memiliki satu parameter opsional ($splitLength) yang menentukan pemotongan string setiap berapa karakter. Nilai yang diterima parameter ini hanya integer. Secara default, parameter ini bernilai 1. Fungsi ini mengembalikan nilai false jika $splitLength bernilai kurang dari 1. Mari kita perhatikan contoh penerapan fungsi yang satu ini.

<?php
  print_r(str_split('Herbivora'));
  // Output: Array ( [0] => H [1] => e [2] => r [3] => b [4] => i [5] => v [6] => o [7] => r [8] => a )

  print_r(str_split('Herbivora', 2));
  // Output: Array ( [0] => He [1] => rb [2] => iv [3] => or [4] => a )
?>

Fungsi chunk_split() memiliki dua parameter opsional, yaitu $chunkLength dan $endOfChunk. Parameter $chunkLength menentukan panjang dari setiap potongan string. Secara default, panjang potongan sebuah string adalah 76. Sedangkan, parameter $endOfChunk berfungsi untuk menentukan string yang ditambahkan pada akhir potongan string. Secara default, parameter ini bernilai \r\n. Mari kita perhatikan contoh penerapan chunk_split() pada kode berikut.

<?php
  $carnivora = "Tiger";
  $greetings = "Halooo_semuanya_!!!_Bersama_kami_di_informatika.web.id_akan_berusaha_membentuk_kalimat_yang_mengandung_lebih_dari_76_karakter,_baik_itu_karakter_biasa_maupun_karakter_khusus.";

  var_dump(chunk_split($carnivora, 2, "x"));
  var_dump(chunk_split($carnivora, 1));

  var_dump(strlen($greetings));
  var_dump(chunk_split($greetings));
?>
string(8) "Tixgexrx"

string(15) "T
i
g
e
r
"

int(174)

string(180) "Halooo_semuanya_!!!_Bersama_kami_di_informatika.web.id_akan_berusaha_membent
uk_kalimat_yang_mengandung_lebih_dari_76_karakter,_baik_itu_karakter_biasa_m
aupun_karakter_khusus.
"

strtoupper(), strtolower(), ucfirst(), lcfirst(), dan ucwords()

Nama FungsiSintaksDeskripsi
strtoupper()strtoupper($string)Mengubah semua karakter dalam string menjadi huruf kapital.
strtolower()strtolower($string)Mengubah semua karakter dalam string menjadi huruf kecil.
ucfirst()ucfirst($string)Mengubah karakter pertama dalam string menjadi huruf kapital.
lcfirst()lcfirst($string)Mengubah karakter pertama dalam string menjadi huruf kecil.
ucwords()ucwords($string, $delimiters)Mengubah karakter pertama pada setiap kata dalam string menjadi huruf kapital.

Mari kita perhatikan contoh penerapan fungsi-fungsi tersebut.

<?php
  # strtoupper(), sejak PHP versi 4+
  echo strtoupper('Hello World!!');
  // Output: HELLO WORLD!!
  
  # strtolower(), sejak PHP versi 4+
  echo strtolower('HelLO WorlD!!');
  // Output: hello world!!
  
  # ucfirst(), sejak PHP versi 4+
  echo ucfirst('hello world!!');
  // Output: Hello world!!
  
  # lcfirst(), sejak PHP versi 5.30+
  echo lcfirst('Hello World!!');
  // Output: hello World!!
?>

Fungsi ucwords() memiliki parameter opsional, yaitu $delimiters. Parameter ini menerima string dan berfungsi sebagai pemisah kata. Secara default, $delimiters bernilai \t\r\n\f\v (space, form-feed, newline, carriage return, horizontal tab, dan vertical tab). Mari kita simak contoh penerapan ucwords().

<?php
  echo ucwords('hello world!');
  // Output: Hello World!

  echo ucwords("hello\nworld!");
  // Output: Hello World!

  echo ucwords("hello\tworld!");
  // Output: Hello World!

  echo ucwords("hello\rworld!");
  // Output: Hello World!

  echo ucwords('hello#world!', '#');
  // Output: Hello#World!
?>

ltrim(), rtrim(), dan trim()

Nama FungsiSintaksDeskripsi
ltrim()ltrim($string, $charlist)Memotong atau menghapus karakter tertentu dari sebelah kiri sebuah string.
rtrim() alias chop()rtrim($string, $charlist) alias chop($string, $charlist)Memotong atau menghapus karakter tertentu dari sebelah kanan sebuah string.
trim()trim($string, $charlist)Memotong atau menghapus beberapa karakter dari kedua sisi string.

Mari kita lihat contoh penerapan fungsi-fungsi tersebut pada kode berikut.

<?php
  # ltrim()
  $leftSide = 'Turn Left';
  var_dump(ltrim($leftSide, 'Turn'));   // Output: string(5) " Left"
  
  # rtrim() alias chop()
  $foodie = 'Chicken Chop';
  var_dump(rtrim($foodie, 'Chop'));     // Output: string(8) "Chicken "
  var_dump(chop($foodie, ' Chop'));     // Output: string(7) "Chicken"

  # trim()
  $time = '_Midnight _';
  var_dump(trim($time, '_'));           // Output: string(9) "Midnight "
?>

str_replace() dan str_ireplace()

SintaksNama FungsiDeskripsi
str_replace()str_replace($search, $replace, $subject, $count)Mengubah kata yang diinginkan pada kalimat secara case-sensitive.
str_ireplace()str_ireplace($search, $replace, $subject, $count)Mengubah kata yang diinginkan pada kalimat secara case-insensitive.

Fungsi str_replace() ada sejak PHP versi 4+ dan mengembalikan nilai berupa string atau array sesuai dengan $subject. Berikut keterangan dari masing-masing parameter str_replace().

  • $search memuat kata yang dicari.
  • $replace memuat kata yang ingin diganti.
  • $subject memuat kalimat yang ingin diganti kata-katanya.
  • $count adalah nama variabel yang menerima jumlah pergantian yang terjadi. Parameter ini bersifat opsional dan secara default bernilai null. Berlaku sejak PHP 5.0.

Terdapat berapa aturan mengenai fungsi str_replace(), antara lain:

  • Jika $search dan $replace berupa array, str_replace() mengambil nilai dari setiap elemen array dan menggunakannya untuk pencarian pada $subject.
  • Jika $replace memiliki nilai yang lebih sedikit daripada $search, string kosong yang akan digunakan untuk sisa nilai pengganti.
  • Jika $search adalah array dan $replace adalah string, string $replace akan digunakan untuk setiap nilai pencarian. Namun, tidak sebaliknya.

Mari kita perhatikan contoh penerapannya.

<?php
  $vocal = ['a', 'e', 'i', 'o', 'u'];
  $replaceChar = "s";
  $subject = "HellO wOrld umUmnya adAlah program komputer yang mengEluarkan ataU menAmpilkan pesAn \"HEllo, World!\".";

  echo str_replace($vocal, $replaceChar, $subject, $changeCounted);
  // Output: HsllO wOrld smUmnys sdAlsh prsgrsm ksmpstsr ysng msngElssrksn stsU msnAmpslksn pssAn "HElls, Wsrld!".

  echo $changeCounted;
  // Output: 23
?>

Fungsi str_ireplace() memiliki parameter dan cara kerja yang sama dengan str_replace(), hanya saja fungsi ini berlaku sejak PHP versi 5+ dan melakukan pengubahan tanpa memperhatikan huruf kapital atau kecil (case-insensitive). Mari kita perhatikan contoh penerapannya pada kode berikut.

<?php
  $vocal = ['a', 'e', 'i', 'o', 'u'];
  $replaceChar = "l";
  $subject = "HellO wOrld umUmnya adAlah program komputer yang mengEluarkan ataU menAmpilkan pesAn \"HEllo, World!\".";
  
  echo str_ireplace($vocal, $replaceChar, $subject, $changeCounted);
  // Output: Hllll wlrld lmlmnyl ldlllh prlgrlm klmpltlr ylng mlngllllrkln ltll mlnlmpllkln plsln "Hllll, Wlrld!".
  
  echo $changeCounted;
  // Output: 32
?>

strstr(), stristr(), dan strrchr()

Nama FungsiSintaksDeskripsi
strstr() alias strchr()strstr($haystack, $needle, $before_needle) alias strchr($haystack, $needle, $before_needle)Mengambil bagian string ($needle) yang pertama ditemukan hingga akhir string tersebut. Pencarian fungsi ini bersifat case-sensitive.
stristr()stristr($haystack, $needle, $before_needle)Mirip seperti strstr(), hanya saja pencarian bersifat case-insensitive.
strrchr()strrchr($haystack, $needle)Mirip seperti strchr(), hanya saja pencarian diterapkan terhadap karakter yang ditemukan terakhir kali.

Fungsi strstr() alias strchr() berlaku sejak PHP versi 4+. Fungsi ini memiliki 2 parameter wajib ($haystack dan $needle) dan 1 parameter opsional ($before_needle). Berikut keterangan mengenai parameter fungsi ini.

  • $haystack merupakan parameter yang memuat string sebagai wadah pencarian.
  • $needle memuat string yang akan dicari pada $haystack. Parameter ini juga dapat memuat integer dan pencarian akan dilakukan untuk karakter ASCII yang bersesuaian dengan nilai integer yang dimuat.
  • $before_needle merupakan parameter opsional yang memuat boolean. Secara default, parameter ini bernilai false. Jika parameter ini bernilai true, fungsi mengembalikan bagian string dari awal hingga tepat sebelum $needle.

Fungsi strstr() alias strchr() mengembalikan nilai false jika pencarian tidak ditemukan. Mari kita perhatikan contoh penerapannya.

<?php
  $sentence = "Hello My World!";

  $found = strstr($sentence, 'World');
  var_dump($found);
  // Output: string(6) "World!"
  
  $foundBefore = strchr($sentence, 'World', true);
  var_dump($foundBefore);
  // Output: string(9) "Hello My "

  // 111 adalah kode ASCII dari karakter 'o'
  $foundReferenceByASCII = strstr($sentence, 111);
  var_dump($foundReferenceByASCII);
  // Output: string(11) "o My World!"

  $notFound = strchr($sentence, 'world');
  var_dump($notFound);
  // Output: bool(false)
  // Hasil kembalian bernilai false karena kita tidak menemukan adanya "w" (case-sensitive)
?>

Jika kita hanya ingin mengetahui apakah $needle tertentu berada dalam $haystack, kita dapat memanfaatkan fungsi strpos() yang lebih cepat dan lebih ringan dalam penggunaan memory.

Fungsi stristr() memiliki cara kerja yang sama dengan fungsi strstr() alias strchr(), namun pencarian bersifat case-insensitive. Mari kita lihat contoh penerapannya pada kode berikut.

<?php
  $sentence = "Hello My World!";

  $found = stristr($sentence, 'WORLD');
  var_dump($found);
  // Output: string(6) "World!"

  $foundBefore = stristr($sentence, 'world', true);
  var_dump($foundBefore);
  // Output: string(9) "Hello My "

  // 79 adalah kode ASCII dari karakter 'O'
  $foundReferenceByASCII = stristr($sentence, 79);
  var_dump($foundReferenceByASCII);
  // Output: string(11) "o My World!"

  $notFound = stristr($sentence, 'world.');
  var_dump($notFound);
  // Output: bool(false)
  // Hasil kembalian bernilai false karena kita tidak menemukan adanya "." 
?>

Fungsi strrchr() berlaku sejak PHP versi 4+ dan memiliki 2 parameter wajib, yaitu $haystack (string wadah pencarian) dan $needle (karakter yang dicari). Parameter $needle dapat memuat string (hanya karakter pertama yang digunakan) dan integer (nilai ASCII). Fungsi ini mengembalikan string yang berisi semua karakter dimulai dari karakter yang ditemukan terakhir hingga akhir string. Fungsi ini akan mengembalikan false bila karakter tidak ditemukan. Mari kita perhatikan contoh berikut.

<?php
  $sentence = "Hello My World!";

  var_dump(strrchr($sentence, 'l'));
  // Output: string(3) "ld!"
  
  var_dump(strrchr($sentence, 'llo'));
  // Output: string(3) "ld!"

  // 77 adalah kode ASCII "M"
  var_dump(strrchr($sentence, 77)); 
  // Output: string(9) "My World!"

  var_dump(strrchr($sentence, 'a'));
  // Output: bool(false)

  // 109 adalah kode ASCII "m"
  var_dump(strrchr($sentence, 109));
  // Output: bool(false)
?>

strpos(), stripos(), strrpos(), dan strripos()

Nama FungsiSintaksDeskripsi
strpos()strpos($haystack, $needle, $offset)Mencari posisi sebuah string yang pertama ditemukan dalam string lainnya secara case-sensitive.
stripos()stripos($haystack, $needle, $offset)Mencari posisi sebuah string yang pertama ditemukan dalam string lainnya secara case-insensitive.
strrpos()strrpos($haystack, $needle, $offset)Mencari posisi sebuah string yang terakhir ditemukan dalam string lainnya secara case-sensitive.
strripos()strripos($haystack, $needle, $offset)Mencari posisi sebuah string yang terakhir ditemukan dalam string lainnya secara case-insensitive.

Fungsi strpos() dan strrpos() ada sejak PHP versi 4+, sedangkan stripos() dan strripos() berlaku sejak PHP 5+. Fungsi-fungsi ini mengembalikan nilai berupa integer atau false (jika pencarian tidak terpenuhi) dengan menerima 2 parameter wajib ($haystack dan $needle) dan 1 parameter opsional ($offset). Berikut keterangan mengenai parameter fungsi-fungsi ini.

  • $haystack merupakan parameter yang memuat string sebagai wadah pencarian.
  • $needle memuat string yang akan dicari pada $haystack. Parameter ini dapat memuat string lebih dari 1 kata sejak PHP 5.0.
  • $offset memuat posisi mulai pencarian dengan nilai integer dan bersifat opsional. Secara default, parameter ini bernilai 0. Jika bernilai negatif, pencarian dimulai dari sebanyak nilai terhitung dari akhir $haystack. Parameter ini dapat bernilai negatif sejak PHP 7.1.0.

Mari kita perhatikan contoh kode berikut.

<?php
  $newSentence = "Cindy sedang memasak masakan Indonesia.";

  // strpos() ~ case-sensitive
  var_dump(strpos($newSentence, 'indonesia'));      // Output: bool(false)
  var_dump(strpos($newSentence, 'masak'));          // Output: int(15)
  var_dump(strpos($newSentence, 'masak', 10));      // Output: int(15)
  var_dump(strpos($newSentence, 'masak', -10));     // Output: bool(false)
  var_dump(strpos($newSentence, 'masak', -20));     // Output: int(21)

  // stripos() ~ case-insensitive
  var_dump(stripos($newSentence, 'indonesia'));      // Output: int(29)
  var_dump(stripos($newSentence, 'masak'));          // Output: int(15)
  var_dump(stripos($newSentence, 'masak', 10));      // Output: int(15)
  var_dump(stripos($newSentence, 'masak', -10));     // Output: bool(false)
  var_dump(stripos($newSentence, 'masak', -20));     // Output: int(21)

  // strrpos() ~ reverse & case-sensitive 
  var_dump(strrpos($newSentence, 'indonesia'));      // Output: bool(false)
  var_dump(strrpos($newSentence, 'masak'));          // Output: int(21)
  var_dump(strrpos($newSentence, 'masak', 10));      // Output: int(21)
  var_dump(strrpos($newSentence, 'masak', -10));     // Output: int(21)
  var_dump(strrpos($newSentence, 'masak', -20));     // Output: int(15)
  
  // strripos() ~ reverse & case-insensitive 
  var_dump(strripos($newSentence, 'indonesia'));      // Output: int(29)
  var_dump(strripos($newSentence, 'masak'));          // Output: int(21)
  var_dump(strripos($newSentence, 'masak', 10));      // Output: int(21)
  var_dump(strripos($newSentence, 'masak', -10));     // Output: int(21)
  var_dump(strripos($newSentence, 'masak', -20));     // Output: int(15)
?>
PHP

PHP #14 - Bekerja dengan String (Bag. III)

PHP #12 - Bekerja dengan String (Bag. I)

comments powered by Disqus