PHP sscanf() ການຄົ້ນຫາ

ຄວາມນຳໃຊ້

ການຄົ້ນຫາວິສະວະກຳ:

<?php
$str = "age:30 weight:60kg";
sscanf($str,"age:%d weight:%dkg",$age,$weight);
// ສະແດງຄວາມປະເພດ ແລະ ຄວາມມູນ
var_dump($age,$weight);
?>

ການດຳເນີນການ

ການອະທິບາຍ ແລະ ການນໍາໃຊ້

sscanf() ການຄົ້ນຫາຂໍ້ມູນຈາກວິສະວະກຳທີ່ມີຢູ່ໃນວິສະວະກຳ. sscanf() ການຄົ້ນຫາວິສະວະກຳຈາກວິສະວະກຳທີ່ມີຢູ່ໃນວິສະວະກຳອີງຕາມຄຳສັບພາສາ.

ຖ້າພຽງປະກອບສອງປະເພດທີ່ສົ່ງໄປຫາການເຮັດວຽກ, ຂໍ້ມູນຈະກັບຄືນເປັນອາກາດ. ຖ້າມີປະເພດອີກ, ຂໍ້ມູນທີ່ຖືກຄົ້ນຫາຈະບັນທຶກໃນປະເພດດັ່ງກ່າວ. ຖ້າຈຳນວນຄຳປະຈຳທີ່ມີຫຼາຍກວ່າຈຳນວນສານທີ່ມີ, ຈະເກີດຄວາມຜິດພາດ. ແຕ່ຖ້າຈຳນວນຄຳປະຈຳທີ່ມີຫຼາຍກວ່າຈຳນວນສານ, ປະເພດທີ່ຫຼາຍກວ່າຈຳນວນສານຈະມີຄຳສັບພາສາ NULL.

ຫົວຂໍ້ຫຼັກ:

  • printf() - ການສົ່ງວິສະວະກຳທີ່ຖືກຂຽນອອກໄປໃນສານ.
  • sprintf() - ຂຽນວິສະວະກຳທີ່ຖືກຂຽນອອກໄປໃນສານ.

ຄຳສັບພາສາ

sscanf(string,format,arg1,arg2,arg++)
ປະເພດ ອະທິບາຍ
string ສະເພາະຫຼາຍ. ກໍານົດວິສະວະກຳທີ່ຈະອ່ານ.
format

ສະເພາະຫຼາຍ. ກໍານົດຈຳນວນພາສາທີ່ຈະໃຊ້.

ຈຳນວນພາສາບັນດາທີ່ເປັນໄປໄດ້:

  • %% - ກັບຄືນຄຳສັບພາສາ %
  • %c - ຄຳສັບພາສາທີ່ຕາມຈຳນວນ ASCII
  • %d - ຈຳນວນສິບສອງຕາມການສັບພາສາທີ່ມີສິບສານ (ຍັງຈັບ, 0, ຍັງຈັບ)
  • %e - ການສັບພາສາວິທະຍາສາການວິທະຍາສາການສິບສອງ (ວ່າ 1.2e+2)
  • 鋡ຳນວນສິບສອງຕາມການສັບພາສາທີ່ບໍ່ມີສິບສານ (ຫຼາຍກວ່າ ສາມ)
  • %f - ຈຳນວນສິບສອງຕາມການສັບພາສາຮອຍ
  • %o - ຈຳນວນສິບສອງຕາມການສັບພາສາແອອກ
  • %s - ວິສະວະກຳ
  • 0x - ຈັບຕອບວ່າຈຳນວນສິບສອງຕາມການສັບພາສາລາວ
  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认地,只有负数做标记,正数不做标记)
  • ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。)
  • - (左调整变量值)
  • [0-9] (规定变量值的最小宽度)
  • .[0-9] (规定小数位数或最大字符串长度)

注释:如果使用多个上述的格式值,它们必须按照上面的顺序使用。

arg1 ສາມາດໃຊ້. ສະເຫມຕິດຕໍ່ທີ່ຮັກສາຂໍ້ມູນຄັ້ງທີໜຶ່ງ.
arg2 ສາມາດໃຊ້. ສະເຫມຕິດຕໍ່ທີ່ຮັກສາຂໍ້ມູນຄັ້ງທີສອງ.
arg++ ສາມາດໃຊ້. ສະເຫມຕິດຕໍ່ທີ່ຮັກສາຂໍ້ມູນຄັ້ງທີສາມ ແລະ ສາມສິບຄັ້ງຫຼັງນັ້ນ.

ຂໍ້ມູນດ້ານເຕັກນິກ

ຜົນກະທົບ: ຖ້າມີພຽງສອງສະເຫມຕິດຕໍ່ກັບການເອົາຂໍ້ມູນກັບການດຳເນີນງານວ່າວິທະຍານ. ຖ້າມີສະເຫມຕິດຕໍ່ກັບຂໍ້ມູນອື່ນໆ, ຂໍ້ມູນທີ່ຖືກອ່ອນທີ່ວິທະຍານຈະຖືກຮັກສາໃນສະເຫມຕິດຕໍ່ກັບຂໍ້ມູນ. ຖ້າຈຳນວນຄວາມສະເຫມຕິດຕໍ່ຫຼາຍກວ່າຈຳນວນສະເຫມຕິດຕໍ່ທີ່ກວມເອົາ, ຈະເກີດຄວາມຜິດພາດ. ແຕ່ຖ້າຈຳນວນຄວາມສະເຫມຕິດຕໍ່ຫຼາຍກວ່າຈຳນວນສະເຫມຕິດຕໍ່, ສະເຫມຕິດຕໍ່ທີ່ຫຼາຍກວ່າຈຳນວນສະເຫມຕິດຕໍ່ຈະຖືກຮັກສາດ້ວຍ NULL.
ຫົວຂໍ້ພະລັງງານ PHP: 4.0.1+

ຕົວຢ່າງຫຼາຍກວ່າ

ຕົວຢ່າງ 1

ນຳໃຊ້ຄູ່ສັນຍາວິງ %s、%d ແລະ %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);
?>

ການດຳເນີນການ