php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /opt/php-7.0.1/ext/mbstring/tests/ |
files >> //opt/php-7.0.1/ext/mbstring/tests/mb_strpos.phpt |
--TEST-- mb_strpos() --SKIPIF-- <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?> --FILE-- <?php // TODO: Add more encodings //$debug=true; ini_set('include_path','.'); include_once('common.inc'); // Test string $euc_jp = b'0123ʸܸǤEUC-JPȤäƤޤ0123ܸݽ'; // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== POSITIVE OFFSET ==\n"; print mb_strpos($euc_jp, b'ܸ', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, b'0', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, b'ܸ', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, b'0', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 15, 'EUC-JP') . "\n"; // Negative offset // Note: PHP Warning - offset is negative. // Note: For offset(-15). It does not return position of latter string. (ie the same result as -50) echo "== NEGATIVE OFFSET ==\n"; $r = mb_strpos($euc_jp, b'ܸ', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, b'0', -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -15, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, b'ܸ', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, b'0', -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -50, 'EUC-JP'); ($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); $r = mb_strpos($euc_jp, b'ܸ', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, b'0', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; // Note: Returned NULL string // echo gettype($r). ' val '. $r ."\n"; // Non-existent echo "== NON-EXISTENT ==\n"; $r = mb_strpos($euc_jp, b'ڹ', 0, 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, b"\n", 0, 'EUC-JP'); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp, b'ܸ', 0) . "\n"; print mb_strpos($euc_jp, b'0', 0) . "\n"; print mb_strpos($euc_jp, 3, 0) . "\n"; print mb_strpos($euc_jp, 0, 0) . "\n"; $r = mb_strpos($euc_jp, b'ڹ', 0); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, b"\n", 0); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No offset and encoding parameter echo "== NO OFFSET AND ENCODING PARAMETER ==\n"; mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp, b'ܸ') . "\n"; print mb_strpos($euc_jp, b'0') . "\n"; print mb_strpos($euc_jp, 3) . "\n"; print mb_strpos($euc_jp, 0) . "\n"; $r = mb_strpos($euc_jp, b'ڹ'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, b"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // Invalid Parameters echo "== INVALID PARAMETER TEST ==\n"; $r = mb_strpos($euc_jp,'','EUC-JP'); ($r === NULL) ? print("OK_NULL\n") : print("NG_NULL\n"); $r = mb_strpos($euc_jp, $t_ary, 'EUC-JP'); ($r === NULL) ? print("OK_ARRAY\n") : print("NG_ARRAY\n"); $r = mb_strpos($euc_jp, $t_obj, 'EUC-JP'); ($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); $r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING'); ($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n"); ?> --EXPECT-- == POSITIVE OFFSET == 10 0 3 0 34 30 33 30 == NEGATIVE OFFSET == ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET ERR: Warning OK_NEGATIVE_OFFSET == OUT OF RANGE == OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE == NON-EXISTENT == OK_STR OK_NEWLINE == NO ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == NO OFFSET AND ENCODING PARAMETER == 10 0 3 0 OK_STR OK_NEWLINE == INVALID PARAMETER TEST == ERR: Warning OK_NULL ERR: Warning OK_ARRAY ERR: Warning OK_OBJECT ERR: Warning OK_BAD_ENCODINGy~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`