Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP sscanf()

PHP sscanf()

王林
王林asal
2024-08-29 12:55:391188semak imbas

Sscanf() ialah fungsi pra-takrif dalam PHP yang mengembalikan rentetan input yang dihuraikan selepas menghuraikannya mengikut format yang diperlukan. Ia mengambil input daripada 2 parameter dan memberikan kami tatasusunan yang diperlukan dan dalam kes lain apabila parameter lain diluluskan seperti parameter pilihan, data yang dihuraikan akan disimpan di dalamnya. Ia menimbulkan ralat apabila terdapat lebih banyak penentu daripada pembolehubah untuk mengandungi ini dan pembolehubah tambahan akan mendapat NULL jika terdapat penentu yang lebih rendah daripada pembolehubah.

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Sintaks PHP sscanf()

Diberikan di bawah ialah sintaks PHP sscanf():

sscanf(input_string, format, arg1, arg2, arg3....)

Parameter Input:

1. rentetan_input: Ini ialah rentetan input untuk dibaca.

2. format: Kami boleh menentukan format mengikut senarai di bawah seperti yang diperlukan:

  • %%: Format ini akan dalam tanda peratus.
  • %c: Format ini mengembalikan aksara mengikut nilai ASCII yang diperlukan.
  • %d: Format ini adalah untuk nilai perpuluhan yang ditandatangani. (Boleh sifar, negatif atau positif)
  • %e: Format ini mengembalikan notasi saintifik dalam huruf kecil. (cth. 1.2e+2)
  • %u: Digunakan untuk mewakili nombor perpuluhan tidak bertanda yang sama ada sama dengan atau lebih besar daripada sifar.
  • %f: Ini digunakan untuk mewakili nombor titik terapung.
  • %o: Ini digunakan untuk mewakili nombor perlapanan.
  • %s: Ini mewakili format rentetan.
  • %x: Ini mewakili huruf kecil untuk nombor perenambelasan.
  • %X: Ini mewakili huruf besar untuk nombor perenambelasan.

Terdapat juga beberapa nilai format tambahan yang diletakkan di antara simbol % dan huruf yang kami berikan. (Contohnya %0.3f)

  • + (Ini memaksa kedua-dua nilai + dan – pada permulaan nombor dan hanya terdapat nilai negatif yang ditandakan secara lalai).
  • ‘ (Ini menerangkan tentang perkara yang akan digunakan sebagai pelapik dan ruang ialah nilai lalai di sini. Ini harus digunakan bersama dengan penentu lebar. Contohnya: %x30s yang menggunakan x untuk pelapik).
  • – (Ini di sebelah kiri akan memberi kita nilai pembolehubah).
  • [0-9] (Ini memberikan lebar minimum yang dipegang oleh nilai pembolehubah).
  • . [0-9] (Ini menerangkan jumlah nombor perpuluhan atau panjang maksimum rentetan).
Nota: Sekiranya terdapat lebih daripada satu format yang digunakan maka susunan yang diikuti mestilah sama seperti yang diberikan di atas.
  • arg1: Ini ialah parameter pilihan dan juga pembolehubah pertama yang kita simpan data.
  • arg2: Ini juga pilihan dan pembolehubah kedua kami menyimpan data.
  • arg++: Ini adalah pilihan dan mewakili pembolehubah berturut-turut yang kami terus simpan data kami.

Nilai pulangan: Di sini terdapat 2 kes yang boleh berlaku:

  • Jika terdapat hanya 2 nilai yang diberikan sebagai parameter input kepada fungsi ini maka data akan dikembalikan dalam bentuk tatasusunan.
  • Jika parameter pilihan lain diluluskan maka data yang dihuraikan disimpan di dalamnya.
  • Jika terdapat berbilang penentu melebihi pembolehubah yang boleh mengandunginya maka ralat akan dilemparkan.
  • Jika terdapat kurang penentu daripada pembolehubah yang boleh terkandung di dalamnya, maka NULL akan diberikan kepada pembolehubah tersebut.
  • -1 akan dikembalikan jika lebih banyak penentu hadir daripada dalam format yang dijangkakan.

Contoh PHP sscanf()

Diberikan di bawah adalah contoh yang dinyatakan:

Contoh #1

Kod:

<?php
$text = "Random sentence goes here with numbers 5 and 8";
$f = sscanf($text,"%s %s %s %s %s %s %d %s %d");
print_r($f);
?>

Output:

PHP sscanf()

Dalam contoh ini kami menentukan teks seperti yang diperlukan. Kemudian menggunakan fungsi sscanf dan menentukan format yang betul yang mewakili rentetan input kami. Oleh itu dalam output rentetan yang tepat dipaparkan sebagai tatasusunan. Ini hanya jika format sepadan dengan data.

Contoh #2

Kod:

<?php
// fetching the unique ID of product
list($ID) = sscanf("SN/680001", "SN/%d");
// fetching date of manufacturing
$manf = "March 03 2001";
// fetching the date of expiry
$expiry = "March 03 2002";
// Parsing using sscanf function
list($mon, $day, $yr) = sscanf($manf, "%s %d %d");
list($mon, $day, $yr) = sscanf($expiry, "%s %d %d");
echo "Product $ID was manufactured on $manf and will expire on: $yr-" . substr($mon, 0, 3) . "-$day\n";
?>

Output:

PHP sscanf()

Dalam contoh ini, kami memaparkan cara menyemak dan memaparkan maklumat produk seperti ID pembuatan Uniknya dan tarikh tamat tempoh. Jadi dalam parameter pertama kami mengambil maklumat ID dan menghuraikannya dalam format %d. Seterusnya kami mengambil tarikh pembuatan dan tarikh luput produk dan menghuraikan sama seperti format yang diperlukan menggunakan fungsi sscanf. Kemudian memaparkan semua perkara yang dihuraikan dalam satu ayat. Pelbagai perkara boleh ditambah di sini untuk memaparkan maklumat yang kami mahu.

Example #3

Code:

<?php
// Fetching designer info and to generate DressInfo entry
$design = "13\tCoco Chanel";
$str = sscanf($design, "%d\t%s %s", $ID, $firstname, $lastname);
// Displaying all the above details after formatting
echo "<author id='$ID'>
<firstname>$firstname</firstname>
<surname>$lastname</surname>
</author>\n";
?>

Output:

PHP sscanf()

In this example we are using sscanf function to first parse the ID and name of the designer. Then displaying the same in HTML format by splitting the names into first name and last name.

Example #4

Code:

<?php
// We are initializing the string here
$arr = "Character PHP and number 7";
// Parsing the input string according to different format
$format = sscanf($arr,"%s %c%c%c %s %s  %d");
print_r($format);
?>

Output:

PHP sscanf()

In the above example we are first initializing the string as required and this time including a few character sets in combination with strings. The same we are parsing using the sscanf function.

Conclusion

As seen above in all the examples, sscanf function in PHP is basically used to parse any type of the input string as per the requirements. There are a few cases where this function shows inefficiency to parse the strings, where there may be incorrect output when we try to parse a tab delimited string also having normal spaces in between. It also does not give the expected output if in the code there is a file name with its extension where it finds difficult to separate the two in presence of a “.”.

Atas ialah kandungan terperinci PHP sscanf(). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP meletup()Artikel seterusnya:PHP meletup()