Fungsi sscanf() PHP

Contoh

Memecahkan string:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// Menampilkan tipe dan nilai
var_dump($age,$weight);
?>

Contoh Berjalan

Definisi dan penggunaan

Fungsi sscanf() mengurai input dari string yang ditentukan. Fungsi sscanf() mengurai string berdasarkan string format.

Jika hanya mengirimkan dua parameter, data akan kembali dalam bentuk array. Jika mengirimkan parameter ekstra, data yang diparse akan disimpan di parameter ekstra. Jika jumlah tanda pemisah lebih banyak daripada jumlah variabel yang mengandungnya, akan terjadi kesalahan. Namun, jika jumlah tanda pemisah kurang daripada jumlah variabel yang mengandungnya, variabel ekstra akan mengandung NULL.

Fungsi yang relevan:

  • printf() - Outputkan string yang disesuaikan
  • sprintf() - Tulis string yang disesuaikan ke dalam variabel

Syarat

sscanf(teks,format,arg1,arg2,arg++)
Parameter Deskripsi
teks Diperlukan. Tentukan teks yang akan diambil.
format

Diperlukan. Tentukan format yang akan digunakan.

Nilai format yang mungkin:

  • %% - Mengembalikan persen %
  • %c - Karakter yang sesuai dengan nilai ASCII
  • %d - Bilangan desimal dengan simbol positif/negatif (nol, negatif, positif)
  • %e - Bilangan ilmiah dengan huruf kecil (contoh 1.2e+2)
  • 蒛ilangan desimal tanpa simbol positif/negatif (tidak kurang dari 0)
  • %f - Bilangan floating-point
  • %o - Bilangan oktal
  • %s - Teks
  • %x - Bilangan heksadesimal (huruf kecil)
  • %X - Bilangan heksadesimal (huruf besar)

Format nilai tambahan. Harus disematkan di antara % dan huruf (contohnya %.2f):

  • + (menambahkan + atau - di hadapan nombor untuk menentukan kepositan negatif atau positif. Secara asal, hanya nombor negatif di tandai, nombor positif tidak di tandai)
  • ' (menetapkan apa yang digunakan sebagai pengisi, asalnya spasi. Mesti digunakan bersama-sama dengan penyesuaian lebar)
  • - (menarik nilai variabel ke kiri)
  • .[0-9] (menetapkan lebar minimum nilai variabel)
  • .[0-9] (menetapkan jumlah titik desimal atau panjang maksimum string)

Komen:Jika digunakan beberapa nilai format di atas, mereka mesti digunakan mengikut urutan di atas.

arg1 Pilihan. Simpan data ke variabel pertama.
arg2 Pilihan. Simpan data ke variabel kedua.
arg++ Pilihan. Simpan data ke variabel ketiga dan keempat, dan seterusnya.

Butiran Teknik

Kembalian nilai: Jika hanya menghantar dua parameter kepada fungsi ini, data akan kembalikan dalam bentuk array. Jika ada parameter tambahan yang dihantar, data yang diproses akan disimpan di parameter ini. Jika bilangan penanda lebih banyak daripada bilangan variabel yang mengandungnya, akan terjadi kesalahan. Walau bagaimanapun, jika bilangan penanda lebih sedikit daripada bilangan variabel yang mengandungnya, variabel tambahan akan mengandungi NULL.
Versi PHP: 4.0.1+

Lebih banyak contoh

Contoh 1

Gunakan nilai format %s, %d dan %c:

<?php
$str = "If you divide 4 by 2 you'll get 2";
$format = sscanf($str,"%s %s %s %d %s %d %s %s %c");
print_r($format);
?>

Contoh Berjalan