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£©
  • %u - ²»°üº¬Õý¸ººÅµÄÊ®½øÖÆÊý£¨´óÓÚµÈÓÚ 0£©
  • %f - ¸¡µãÊý
  • %o - °Ë½øÖÆÊý
  • %s - ×Ö·û´®
  • %x - Ê®Áù½øÖÆÊý£¨Ð¡Ð´×Öĸ£©
  • %X - Ê®Áù½øÖÆÊý£¨´óд×Öĸ£©

¸½¼ÓµÄ¸ñʽֵ¡£±ØÐè·ÅÖÃÔÚ % ºÍ×Öĸ֮¼ä£¨ÀýÈç %.2f£©£º

  • + £¨ÔÚÊý×ÖÇ°Ãæ¼ÓÉÏ + »ò - À´¶¨ÒåÊý×ÖµÄÕý¸ºÐÔ¡£Ä¬Èϵأ¬Ö»ÓиºÊý×ö±ê¼Ç£¬ÕýÊý²»×ö±ê¼Ç£©
  • ' £¨¹æ¶¨Ê¹ÓÃʲô×÷ΪÌî³ä£¬Ä¬ÈÏÊǿոñ¡£Ëü±ØÐëÓë¿í¶ÈÖ¸¶¨Æ÷Ò»ÆðʹÓᣣ©
  • - £¨×óµ÷Õû±äÁ¿Öµ£©
  • [0-9] £¨¹æ¶¨±äÁ¿ÖµµÄ×îС¿í¶È£©
  • .[0-9] £¨¹æ¶¨Ð¡ÊýλÊý»ò×î´ó×Ö·û´®³¤¶È£©

×¢ÊÍ£ºÈç¹ûʹÓöà¸öÉÏÊöµÄ¸ñʽֵ£¬ËüÃDZØÐë°´ÕÕÉÏÃæµÄ˳ÐòʹÓá£

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);
?>

ÔËÐÐʵÀý

VUE