Menyandikan dan mendekode string php

String kueri URL diformat sebagai rangkaian pasangan parameter/nilai dengan "=" di antaranya, "&" untuk menggabungkannya, dan tanda "?"

http://example.com/some/path?param=value¶m=value¶m=value

Membaca parameter kueri

PHP dapat membaca nilai parameter kueri yang dikirim ke halaman tertaut. PHP secara otomatis menetapkan semua parameter kueri ini ke superglobal $_GET. Ini disebut "$_GET" karena tautan adalah permintaan GET. (Formulir adalah permintaan POST. )

$_GET adalah array asosiatif dan nilainya dapat diakses seperti array asosiatif lainnya

_

Selalu konfirmasikan bahwa nilai $_GET telah disetel sebelum bekerja dengannya. Dalam beberapa konfigurasi, PHP akan menampilkan pesan peringatan yang tidak menyenangkan jika Anda mencoba mengakses kunci array asosiatif yang tidak disetel

_

Ini juga merupakan kebiasaan pengkodean yang baik untuk memeriksa, mengekstrak, dan membersihkan nilai dari $_GET di bagian atas halaman, tidak tercampur dengan HTML

Dalam kode berikut, hubungi. php hanya menampilkan tautan jika $from == 'home'

// contact.php


Contact Us


  Homepage

Mengkodekan nilai $_GET

URL dapat berisi karakter paling umum (huruf, angka, garis bawah, tanda hubung). Mereka tidak dapat memiliki spasi. Ada juga beberapa karakter khusus yang memiliki arti khusus di URL dan tidak dapat digunakan

Karakter URL yang dicadangkan

!  #  $  %  &  '  (  )  *  +  ,  /  :  ;  =  ?  @  [  ]
_

Jika salah satu dari karakter ini digunakan dalam URL, mereka dapat mencegahnya bekerja dengan benar. Oleh karena itu mereka harus dikodekan (mis. e. "berubah") sehingga tidak mengganggu fungsi URL. Ini penting saat kita menggunakan PHP untuk menghasilkan nilai dinamis yang akan digunakan dalam URL, seperti dalam string kueri

Ada berbagai jenis pengkodean tergantung pada konteksnya. Pengkodean untuk URL berarti mengonversi karakter menjadi "%" diikuti dengan dua digit heksadesimal

Heksadesimal. Angka normal berkisar antara 0-9. Angka heksadesimal termasuk 0-9 tetapi juga menambahkan huruf A-F sebagai "digit". Setiap digit memiliki 16 kemungkinan, bukan 10

Misalnya,

// index.php

Contact Us
_0 akan dikodekan sebagai
// index.php

Contact Us
1, dan
// index.php

Contact Us
2 akan dikodekan sebagai
// index.php

Contact Us
3


Fungsi pengkodean PHP

PHP memiliki dua fungsi untuk menyandikan string untuk digunakan dalam URL

urlencode()

  • Mengkodekan sebagian besar karakter non-alfanumerik sebagai
    // index.php
    
    Contact Us
    4 + 2 digit heksadesimal
  • Spasi dikodekan sebagai
    // index.php
    
    Contact Us
    _5
  • Untuk string yang akan digunakan dalam string kueri URL (setelah
    // index.php
    
    Contact Us
    2)

rawurlencode()

  • Mengkodekan sebagian besar karakter non-alfanumerik sebagai
    // index.php
    
    Contact Us
    4 + 2 digit heksadesimal
  • Spasi dikodekan sebagai
    // index.php
    
    Contact Us
    _8
  • Untuk string yang akan digunakan dalam string jalur URL (sebelum
    // index.php
    
    Contact Us
    2)

Perbedaan antara kedua fungsi ini hanya pada bagaimana ruang ditangani. Dalam banyak kasus, itu tidak masalah dan server akan menangani salah satunya dengan benar. Namun, ada beberapa kasus di mana itu penting. Rekomendasi terbaik adalah menggunakan rawurlencode() untuk jalur URL, yang merupakan bagian setelah

http://example.com/some/path?param=value¶m=value¶m=value
0 dan sebelum
// index.php

Contact Us
2, dan menggunakan urlencode() untuk string kueri URL, yang merupakan bagian setelah
// index.php

Contact Us
2 di mana PHP akan sering menampilkan parameter

Contoh



Link label

Sangat penting bahwa semua nilai dinamis dikodekan sebelum digunakan di URL untuk tautan dan formulir. Jika tidak, mungkin ada banyak kasus di mana URL tidak berfungsi


Fungsi decoding PHP

PHP juga memiliki dua fungsi untuk mendekode string ini untuk mengembalikannya ke karakter aslinya

urldecode(). Mendekode string yang disandikan dengan urlencode()

rawurldecode(). Mendekode string yang disandikan dengan rawurlencode()

Namun, fungsi ini jarang diperlukan karena PHP secara otomatis mendekodekan parameter kueri sebelum menugaskannya ke $_GET

Bagaimana cara mendekode string dalam PHP?

Fungsi utf8_decode() adalah fungsi bawaan dalam PHP yang digunakan untuk mendekode string UTF-8 ke ISO-8859- . Fungsi ini menerjemahkan kembali ke string yang dikodekan yang dikodekan dengan fungsi utf8_encode(). Parameter. Fungsi ini menerima parameter tunggal $string yang diperlukan.

Bagaimana cara menyandikan string dalam PHP?

Fungsi base64_encode() adalah fungsi bawaan dalam PHP yang digunakan untuk mengkodekan data dengan MIME base64. MIME (Multipurpose Internet Mail Extensions) base64 digunakan untuk menyandikan string di base64. Data base64_encoded membutuhkan ruang 33% lebih banyak daripada data asli.

Bagaimana mengkonversi string ke UTF

Fungsi utf8_encode() adalah fungsi bawaan dalam PHP yang digunakan untuk menyandikan string ISO-8859-1 ke UTF-8. Unicode telah dikembangkan untuk mendeskripsikan semua kemungkinan karakter dari semua bahasa dan menyertakan banyak simbol dengan satu nomor unik untuk setiap simbol/karakter.

Bagaimana cara menyandikan base64 di PHP?

Sintaks. fungsi base64_encode() dapat menyandikan data yang diberikan dengan base64. Pengkodean ini dirancang untuk membuat data biner bertahan dari transportasi melalui lapisan transportasi yang tidak bersih 8-bit seperti badan surat. Data yang disandikan Base64 dapat memakan ruang sekitar 33% lebih banyak daripada data asli.