From 8be498b45ef1bf2379a24a2b69a965eb7390c2ab Mon Sep 17 00:00:00 2001 From: Raghubansh Kumar Date: Sat, 12 May 2007 12:12:26 +0000 Subject: [PATCH] New version of addcslashes.phpt, implode1.phpt, strpos.phpt, str_replace.phpt, substr_count.phpt, trim1.phpt, chr_ord.phpt, md5_file.phpt, str_repeat.phpt, strstr.phpt, substr.phpt --- ext/standard/tests/strings/addcslashes.phpt | Bin 0 -> 4466 bytes ext/standard/tests/strings/chr_ord.phpt | Bin 191 -> 3181 bytes ext/standard/tests/strings/implode1.phpt | Bin 1178 -> 6313 bytes ext/standard/tests/strings/md5_file.phpt | Bin 0 -> 3029 bytes ext/standard/tests/strings/str_repeat.phpt | Bin 332 -> 7249 bytes ext/standard/tests/strings/str_replace.phpt | 944 +++++++++++++++++-- ext/standard/tests/strings/strpos.phpt | Bin 612 -> 9258 bytes ext/standard/tests/strings/strstr.phpt | Bin 1200 -> 10628 bytes ext/standard/tests/strings/substr.phpt | Bin 0 -> 4601 bytes ext/standard/tests/strings/substr_count.phpt | 168 +++- ext/standard/tests/strings/trim1.phpt | Bin 0 -> 2046 bytes 11 files changed, 1024 insertions(+), 88 deletions(-) create mode 100644 ext/standard/tests/strings/addcslashes.phpt create mode 100644 ext/standard/tests/strings/md5_file.phpt create mode 100644 ext/standard/tests/strings/substr.phpt create mode 100644 ext/standard/tests/strings/trim1.phpt diff --git a/ext/standard/tests/strings/addcslashes.phpt b/ext/standard/tests/strings/addcslashes.phpt new file mode 100644 index 0000000000000000000000000000000000000000..856d2e6525c4c624249db9deaac3752759a8c277 GIT binary patch literal 4466 zcmcgvZByGu5YE@?S8O$8Y!lm&Yy$~2Nhu*SbZAKnopvV2FemwJ3* z$(FG#1AR$me8}2;_I>Yht95aFe$i@K7a~r8_xpYv@^~cTdIJWj^pikItJV5+a(awH z-+hQik@b2TK5LbzWD<#eh!Y*iVObUG#g|+7vN?P3M_h*inrR$Z0Ps=7z78U?un)ha zDiMX`U670*_X7e69FFkSBouAZTln{@NK!3h6v_QCx*qp$3Vlxulomk7xt|CfLo(tC zEFp0eBJV_>OwN3bP;D$wuWfC=wk+X~6xiF_+dv6>5IE&bY4CU)_@E-8IRzI3iZf{+ zP~!ZN@NY;>Dm~`mTnf}+A%|#;vPYutz#b~qp9rqqPPe!7^KYl8%t>@A20V-fcq2o#X_?n;xFcy;1mF3^W0BO9OVM>gzQi&zO%(w>@m6!XY`aEnN zgL!DcUkIF)tkr@OR52C7w>dzoWeNju%k@=19Y^(Y5$bsbngyI`+(P-)s{`w+l@&E_ zY@0dlHtX)$aHrC+57^;662QZ-+<&G;56_QIPQX`v0iHmwo8EfFWj1Gr7Lg zHlyTSw;{Bd&kdSO3g@Wk(X$_ZJU+TO2O9JzIHkO6;bZlSw)b(P6usbDRFWw5LL8A| z!NAp3qRvgT;|P%efHs2-_L%|0t_Jvu>E1$cEV~qUd2?X{tO*b$n_zqPEUuq|*cV|a zq)=&$Lms8c6QUZg(B^uWQrpgBUG0l)qbHdo6#`zWqe`J0?kO?8!Hx9oM!nM zgk!0qKXsg>w|DoGDH^jmb9*~DFz&81tqL4)?KSBGDuT#_XvtLxnI%Y~RYFb^XR%5E zXU2w2LYb*e4z=7i?ex7jO{fmf2C6w!=E=@(40i80v>xar`=p2-n}}9!7NIrXTfUP0 zVClx13a#+E$QqsIWpxi_;J7_fDefbjf867R7LLa{HJe)RvMMOkoYb4PqBu}~A&`%F zW6%x<%lhyhnac4WpK)h>Lb9@cb*{UlQN46YxPTzm?_5i~g!UKig$86X#xSD?(1AqZ zDmQD%Pr?aO5-*TkPx3|81exMJFbr;S)g!}r8H19@IHZ7=eT&MpXud<{vwGIMZyO~J zzzP!ZVu=G-);IPdO!xUw$YC?*507@bS8}@N&YWf?=8`$h409={%d*=$tAR>5%yE`E z&@#|&31~5m>$Aw@QX2Q30b?=!uo`ck17jhpTP*6^5=?JrbDA;F$PtkwGH*FUu2V+C z#kkBiON~ZQ6^k?-xCR70`-P$!~%BBZdl01m@LKSgn-S>>=KyEI;?B|zx(&` z%ijIx%RV2H4h8GXGDc;2@szOtJx^RJ7SR!A_{hv9;~~r+={e^axPlGOz|-)I#m-&D mDmE5W+~cowygfVft2HL3Rdoezs@rNz_dmewR$>xYvHk|{PJ>ne literal 0 HcmV?d00001 diff --git a/ext/standard/tests/strings/chr_ord.phpt b/ext/standard/tests/strings/chr_ord.phpt index 56cfef70a34160e6a6f0a8d59210a48ac16fc317..8c91b4cba07af3092aa78cb29d8424655e632fe8 100644 GIT binary patch literal 3181 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 literal 0 HcmV?d00001 diff --git a/ext/standard/tests/strings/str_repeat.phpt b/ext/standard/tests/strings/str_repeat.phpt index f91bd31b670be9d9b9a7cfeee10f3a5acf7748de..c8995d10dd8200150ac2338ad4d8fbb1e516c81d 100644 GIT binary patch literal 7249 zcmcIpZExE)5cb#UR~!U)wo}`&Y-elpRt#;51qg9X?IcqIBvP#Bj?Z&0FRDrtkS5~wd%i^LBXzKo!C z-~hlI8BZcVq#^dy_vUbf3ZL!L<`WLT!zVQCaeq2&aUIg$vgme zXJ-c}cxDhVe%F37hcJj^f4q>HWef;+51jgyhkj4MdG%JA{wI6rpq)4(wnh} z#^SfJxY7T*qnlpO)re8A(I%old^kJPHy7_eoY0dY{qef}0bN}UcENQpgsSvf1f{3J>|a8k(g38(^{bD))nX?08HJ{F<=-e>w4(Yn0e9FRjcdb zc!c`we0H2t1sXx$6hby^rJ}?zTuZDIyk_$tEy%opyKpX+QiomQBp||9VzH7K;z+_O z#uB%g(u3T0X++FN9_*3YTzi!4V3jkA;p=kwYZ_TKW(mfL%cd9}ontB+^19}a!m)DJ z|7X58WW7;BH@E^onIA7#%TO;ndF2&VupX+Ft~uDv>z1Jvtug-_j}*HkDsj0-ULeOa(H!&o9W3%m zjC$M2j(R-Gq)RBo@r*0uyPYkEFqv97dXuEHV!Wm zcVlZ_tC2ZC);J1JniuNzQ=6h;;Ek<{iy?W<#cut?%3q?2Vk}+)uYd4O*|KnP_l9?B zjmsB=_~_VMlxpgM%CW{1=c7Sok8O&@#ws=&hZnh_xv54aRq&|y5ScHuMcUx-c2=qR zV7%5Ru5$ab$EVYdx9Uqxcy;!Ms+vSn8F_p@czsl^*i>0;tQxa%c#$}gsMd)mtKzxL=jPpZu%}`5vW-^f4!lPlP#X< Hl+*bSV;RL} literal 332 zcma)$O$&lR5QfjruUKS3MK`*1Qj-XSphIAX4nd5f=w)}=R_Fu&d%F@@mk8$jnPFbW z4ta543@%!oRV{1Oen6U@SGp4%7~5=jxxq;$TM4w|vezUfs1)9O550(ZjSx1Ks7kz- zc=du98lh^eTK{#hDhTZY@&LyGpYn7b6Uvi?jbS(fr>yGBlXEC+^1J3@|{p jG=lQuK3`kKfPmIUM=(Ey^(lQ-wt=_Csrohgi%m;U22X0e diff --git a/ext/standard/tests/strings/str_replace.phpt b/ext/standard/tests/strings/str_replace.phpt index f8967d9165..5105e5ada2 100644 --- a/ext/standard/tests/strings/str_replace.phpt +++ b/ext/standard/tests/strings/str_replace.phpt @@ -1,40 +1,168 @@ --TEST-- -str_replace() tests +Test str_replace() function --FILE-- --\n"; + var_dump( str_replace($search_str[$i], "FOUND", $subject, $count) ); + echo "-- search string has found '$count' times\n"; +} + -var_dump(str_replace("multi", "a", "aaa", $count)); +echo "\n*** Testing Miscelleneous input data ***\n"; +/* If replace has fewer values than search, then an empty + string is used for the rest of replacement values */ +var_dump( str_replace(array("a", "a", "b"), + array("q", "q"), + "aaabb", $count + ) + ); +var_dump($count); +var_dump( str_replace(array("a", "a", "b"), + array("q", "q"), + array("aaa", "bbb", "ccc"), + $count + ) + ); var_dump($count); -var_dump(str_replace("a", "multi", "aaa", $count)); + +echo "\n-- Testing objects --\n"; +/* we get "Catchable fatal error: saying Object of class could not be converted + to string" by default, when an object is passed instead of string: +The error can be avoided by chosing the __toString magix method as follows: */ + +class subject +{ + function __toString() { + return "Hello, world"; + } +} +$obj_subject = new subject; + +class search +{ + function __toString() { + return "Hello, world"; + } +} +$obj_search = new search; + +class replace +{ + function __toString() { + return "Hello, world"; + } +} +$obj_replace = new replace; + +var_dump(str_replace("$obj_search", "$obj_replace", "$obj_subject", $count)); var_dump($count); + +echo "\n-- Testing arrays --\n"; var_dump(str_replace(array("a", "a", "b"), "multi", "aaa", $count)); var_dump($count); -var_dump(str_replace(array("a", "a", "b"), array("q", "q", "c"), "aaa", $count)); +var_dump(str_replace( array("a", "a", "b"), + array("q", "q", "c"), + "aaa", $count + ) +); var_dump($count); -var_dump(str_replace(array("a", "a", "b"), array("q", "q", "c"), array("aaa", "bbb"), $count)); +var_dump(str_replace( array("a", "a", "b"), + array("q", "q", "c"), + array("aaa", "bbb"), + $count + ) +); var_dump($count); var_dump(str_replace("a", array("q", "q", "c"), array("aaa", "bbb"), $count)); @@ -46,13 +174,70 @@ var_dump($count); var_dump(str_replace(1, 3, array("aaa1", "2bbb"), $count)); var_dump($count); -$fp = fopen(__FILE__, "r"); -var_dump(str_replace($fp, $fp, $fp, $fp)); -var_dump($fp); + +echo "\n-- Testing Resources --\n"; +$resource1 = fopen( __FILE__, "r" ); +$resource2 = opendir( "." ); +var_dump(str_replace("stream", "FOUND", $resource1, $count)); +var_dump($count); +var_dump(str_replace("stream", "FOUND", $resource2, $count)); +var_dump($count); + + +echo "\n-- Testing a longer and heredoc string --\n"; +$string = << --EXPECTF-- +*** Testing str_replace() on basic operations *** string(0) "" string(4) "tbst" string(0) "" @@ -61,102 +246,711 @@ string(1) "q" int(1) string(0) "" int(0) -string(0) "" -int(0) -string(1) "a" +string(14) "Resource id #5" int(1) -string(3) "aaa" + +*** Testing str_replace() with various search values *** +-- Iteration 0 -- +array(12) { + [0]=> + string(5) "FOUND" + [1]=> + string(0) "" + [2]=> + string(5) "FOUND" + [3]=> + string(1) "0" + [4]=> + string(6) "-FOUND" + [5]=> + string(5) "FOUND" + [6]=> + string(1) "0" + [7]=> + string(6) "-FOUND" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} +int(5) + +-- Iteration 1 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} int(0) -string(15) "multimultimulti" -int(3) -string(15) "multimultimulti" -int(3) -string(3) "qqq" -int(3) -array(2) { + +-- Iteration 2 -- +array(12) { [0]=> - string(3) "qqq" + string(5) "FOUND" [1]=> - string(3) "ccc" + string(0) "" + [2]=> + string(5) "FOUND" + [3]=> + string(1) "0" + [4]=> + string(6) "-FOUND" + [5]=> + string(5) "FOUND" + [6]=> + string(1) "0" + [7]=> + string(6) "-FOUND" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" } -int(6) +int(5) -Notice: Array to string conversion in %s on line %d -array(2) { +-- Iteration 3 -- +array(12) { [0]=> - string(15) "ArrayArrayArray" + string(1) "1" [1]=> - string(3) "bbb" + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(5) "FOUND" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(5) "FOUND" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" } -int(3) -array(2) { +int(2) + +-- Iteration 4 -- +array(12) { [0]=> - string(3) "111" + string(1) "1" [1]=> - string(3) "bbb" + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(5) "FOUND" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(5) "FOUND" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" } -int(3) -array(2) { +int(2) + +-- Iteration 5 -- +array(12) { [0]=> - string(4) "aaa3" + string(5) "FOUND" [1]=> - string(4) "2bbb" + string(0) "" + [2]=> + string(5) "FOUND" + [3]=> + string(1) "0" + [4]=> + string(6) "-FOUND" + [5]=> + string(5) "FOUND" + [6]=> + string(1) "0" + [7]=> + string(6) "-FOUND" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} +int(5) + +-- Iteration 6 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(5) "FOUND" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(5) "FOUND" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} +int(2) + +-- Iteration 7 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(5) "FOUND" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(5) "FOUND" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} +int(2) + +-- Iteration 8 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" } -int(1) -string(%d) "Resource id #%d" -int(1) -Done ---UEXPECTF-- -unicode(0) "" -unicode(4) "tbst" -unicode(0) "" -int(0) -unicode(1) "q" -int(1) -unicode(0) "" int(0) -unicode(0) "" + +-- Iteration 9 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} int(0) -unicode(1) "a" + +-- Iteration 10 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(5) "FOUND" + [11]=> + string(0) "" +} int(1) -unicode(3) "aaa" + +-- Iteration 11 -- +array(12) { + [0]=> + string(1) "1" + [1]=> + string(0) "" + [2]=> + string(1) "1" + [3]=> + string(1) "0" + [4]=> + string(2) "-1" + [5]=> + string(1) "1" + [6]=> + string(1) "0" + [7]=> + string(2) "-1" + [8]=> + string(0) "" + [9]=> + array(0) { + } + [10]=> + string(3) "php" + [11]=> + string(0) "" +} int(0) -unicode(15) "multimultimulti" -int(3) -unicode(15) "multimultimulti" + +*** Testing str_replace() with various subjects *** +--- Iteration 0 --- +-- String after replacing the search value is => -- +string(177) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!FOUND + ?FOUND chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '2' times + +--- Iteration 1 --- +-- String after replacing the search value is => -- +string(177) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!FOUND + ?FOUND chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '2' times + +--- Iteration 2 --- +-- String after replacing the search value is => -- +string(182) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: FOUND + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 3 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 4 --- +-- String after replacing the search value is => -- +string(182) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $FOUND: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 5 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 6 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 7 --- +-- String after replacing the search value is => -- +string(189) "Hello, world,0120333.3445FOUND67 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 8 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 9 --- +-- String after replacing the search value is => -- +string(193) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDFOUND \xXYZ FOUND $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '2' times + +--- Iteration 10 --- +-- String after replacing the search value is => -- +string(193) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xFOUND abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 11 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 12 --- +-- String after replacing the search value is => -- +string(192) "Hello, world,0120333.3445-1.234567 FOUND TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 13 --- +-- String after replacing the search value is => -- +string(207) "Hello, world,FOUND12FOUND333.3445-1.234567 NULL TRUE FALSE + FOUND«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(FOUND).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '4' times + +--- Iteration 14 --- +-- String after replacing the search value is => -- +string(207) "Hello, world,FOUND12FOUND333.3445-1.234567 NULL TRUE FALSE + FOUND«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(FOUND).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '4' times + +--- Iteration 15 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 16 --- +-- String after replacing the search value is => -- +string(307) "Hello,FOUNDworld,0120333.3445-1.234567FOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDNULLFOUNDTRUEFOUNDFALSE +FOUND FOUNDFOUNDFOUNDFOUND0«CDabcdFOUND\xXYZ abcdFOUND$$@#%^&*!~,.:;?:FOUND!!Hello,FOUNDWorldFOUND + FOUNDFOUNDFOUNDFOUND?Hello,FOUNDWorldFOUNDchr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '29' times + +--- Iteration 17 --- +-- String after replacing the search value is => -- +string(203) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSEFOUND + FOUND0«CDFOUNDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '3' times + +--- Iteration 18 --- +-- String after replacing the search value is => -- +string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + FOUND«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 19 --- +-- String after replacing the search value is => -- +string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0FOUNDDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 20 --- +-- String after replacing the search value is => -- +string(194) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + FOUND«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 21 --- +-- String after replacing the search value is => -- +string(194) "Hello, world,0120333FOUND445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 22 --- +-- String after replacing the search value is => -- +string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '3' times + +--- Iteration 23 --- +-- String after replacing the search value is => -- +string(192) "Hello, world,0120333.3445-1.234567 NULL FOUND FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 24 --- +-- String after replacing the search value is => -- +string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '3' times + +--- Iteration 25 --- +-- String after replacing the search value is => -- +string(203) "Hello, world,0FOUND20333.3445-FOUND.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(FOUND28).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '3' times + +--- Iteration 26 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 27 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FOUND + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 28 --- +-- String after replacing the search value is => -- +string(307) "Hello,FOUNDworld,0120333.3445-1.234567FOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDFOUNDNULLFOUNDTRUEFOUNDFALSE +FOUND FOUNDFOUNDFOUNDFOUND0«CDabcdFOUND\xXYZ abcdFOUND$$@#%^&*!~,.:;?:FOUND!!Hello,FOUNDWorldFOUND + FOUNDFOUNDFOUNDFOUND?Hello,FOUNDWorldFOUNDchr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '29' times + +--- Iteration 29 --- +-- String after replacing the search value is => -- +string(186) "Hello, world,0120333.3445-1.234567FOUNDNULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '1' times + +--- Iteration 30 --- +-- String after replacing the search value is => -- +string(199) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDaFOUNDcd \xXYZ aFOUNDcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '2' times + +--- Iteration 31 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 32 --- +-- String after replacing the search value is => -- +string(203) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + FOUND 0«CDabcd \xXYZFOUNDabcd $$@#%^&*!~,.:;?: !!Hello, World +FOUND ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '3' times + +--- Iteration 33 --- +-- String after replacing the search value is => -- +string(191) "Hello, world,0120333.3445-1.234567 NULL TRUE FALSE + 0«CDabcd \xXYZ abcd $$@#%^&*!~,.:;?: !!Hello, World + ?Hello, World chr(0).chr(128).chr(234).chr(65).chr(255).chr(256)" +-- search string has found '0' times + +--- Iteration 34 --- +-- String after replacing the search value is => -- +string(5) "FOUND" +-- search string has found '1' times + +*** Testing Miscelleneous input data *** +string(3) "qqq" +int(5) +array(3) { + [0]=> + string(3) "qqq" + [1]=> + string(0) "" + [2]=> + string(3) "ccc" +} +int(6) + +-- Testing objects -- +string(12) "Hello, world" +int(1) + +-- Testing arrays -- +string(15) "multimultimulti" int(3) -unicode(3) "qqq" +string(3) "qqq" int(3) array(2) { [0]=> - unicode(3) "qqq" + string(3) "qqq" [1]=> - unicode(3) "ccc" + string(3) "ccc" } int(6) Notice: Array to string conversion in %s on line %d array(2) { [0]=> - unicode(15) "ArrayArrayArray" + string(15) "ArrayArrayArray" [1]=> - unicode(3) "bbb" + string(3) "bbb" } int(3) array(2) { [0]=> - unicode(3) "111" + string(3) "111" [1]=> - unicode(3) "bbb" + string(3) "bbb" } int(3) array(2) { [0]=> - unicode(4) "aaa3" + string(4) "aaa3" [1]=> - unicode(4) "2bbb" + string(4) "2bbb" } int(1) -unicode(%d) "Resource id #%d" -int(1) + +-- Testing Resources -- +string(14) "Resource id #6" +int(0) +string(14) "Resource id #7" +int(0) + +-- Testing a longer and heredoc string -- +string(623) "FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789 +@#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&* +FOUNDghijklmnopqrstuvwxyz0123456789FOUNDghijklmnopqrstuvwxyz0123456789" +int(16) + +-- Testing a heredoc null string -- +string(0) "" +int(0) + +-- Testing simple and complex syntax strings -- +string(5) "FOUND" +string(5) "FOUND" + +Notice: Undefined variable: strS in %s on line %d +string(0) "" +string(5) "FOUND" +string(5) "FOUND" + +*** Testing error conditions *** +Warning: str_replace() expects at least 3 parameters, 0 given in %s on line %d +NULL + +Warning: str_replace() expects at least 3 parameters, 1 given in %s on line %d +NULL + +Warning: str_replace() expects at least 3 parameters, 1 given in %s on line %d +NULL + +Warning: str_replace() expects at least 3 parameters, 2 given in %s on line %d +NULL + +Warning: str_replace() expects at most 4 parameters, 5 given in %s on line %d +NULL Done diff --git a/ext/standard/tests/strings/strpos.phpt b/ext/standard/tests/strings/strpos.phpt index 4d30e9822923f103a251d1eb4f8440e983edf1a2..9bd27bc95fb9bc02ed4063d7babb62f37f1fbef0 100644 GIT binary patch literal 9258 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 LVpSo&YB~P_16W|H literal 612 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 C`6{*m literal 1200 zcmchW-)n;~5XYbAUmPOI7k zW1nr&t=XE$w(qW!DrY)7tt>P%4crc}V=_M*3eEVgv|M|Jsv73%4EvX6qm~(;eI?6W zLLRk}GCt_(6k}sS8DoP?In6110}tD5BnJl|r+gn1aKR2$I+?D^riGUeur|@hTlA!M z3Ut_mF4mZ@FPA2jUfTQz!FpF+S4`tQ$+YuFvu}i+ac=+s diff --git a/ext/standard/tests/strings/substr.phpt b/ext/standard/tests/strings/substr.phpt new file mode 100644 index 0000000000000000000000000000000000000000..b4dff84fafe68979fe198d859db7dd1ec7ea9d57 GIT binary patch literal 4601 zcmd^C%Wm676wR7naX}=Aq=<ZaFyAQN3j1e`m2v9>|II=Al{gL{V@dbCalR$|t?t=th$U6BU~z zQ$ZAcJUu%B$=mni;W!9hwdj-1OlGEI`G!Ee@T}Y#-KInt?1eTz73);0Ycu?rngO-w zgUn-{j9J1P`bL_GRymoWq;aPCkg`F^Y%JqskjOsurk2DqC87FMu%xljVkC{!`AhJA z6$DQUwel;WwV2X7vi}?O^|xndZ3@FSb-McphggbU+?N9!ggC*5S66P?JPNG29-Bd? zNotMXI8*(E)y!F(jE5P8tyYURQ?^={Dg;j;_@mSreW|Y}BMFqi<3{MK{$w<6%ss&3 zLCQLl$Tw3nQIp(@b9f|`n;#U0hx0eFNQK_~#$r~!7-d?*9YWEKNRvLP$*3na`%O5z za%#9c0n#o3xP5A_wbrTArf!?|+jLM!c^YRE1-HV1oudHoOA!yLQSmOY;gcr)5)c6} zK$(cbIk$-!lDW+mR07tPst6*eK9M;cx9P17sCTqS_~RHNvVLuZmnw=PI)xsVD}^t; zUN1w!6`Ts-m&ob6xegpP%PP#Dc&`H}mw0RmqSM+>Y>JJF>iyo9`>0z0xE_z8mU1&9 zD;T;&b8xNVvtn>X#ttUK@ms9wv}v2+Ac?lI+1oA&B-=VtF(fsw!7wEOHb|lBx7{r;PDx`6^lF59Dd9 z9ITn!;zHZyIN2n35xRjWLLKmNjI8#h6*g$wE=Z2XX6l>7?NF+s+fZMs%pj?YZj#$N zO+7h9&9-MoqqP;O+{mTjuA<~M4sN7tD7Hq`B2!e3V_M)tK(8nRH3khrn0)|)TxEkn z=SAnVB}z@wl;R=USj^?l_Y|%@RlgLSjn+IvFWRWZ<=x)h6hHUS#np$38i*08m4!wu z=reC}+Z3v2P^;PV%e&LrUuO2FR@V(Fqy%AH3pK|0Kh6|IEFmS!d4Z75PnBc^`MpP(_ zGV~02peRk0q-Xtr`|Tt6b^gQrMj7DSUxM#ov$@M{wZpwMfLB*~$x{CYO)tyR#z3UG zY}T&V@mc9fwXb)P@K73Pv^Yg{|6k_r?`&>S;2J2DA1Vt=lg57-W z*r1*;-;xRXd{}NUcZJ<@$E1*0?w3eecxO)Qb#YRbNQ+Iy{|65RgzYarRy-oFapJyT z{1K~x&zXlq0?zez_Tuu6G2zc7FL24w>ZR9aXHX6w14{AT<`rU4-1nP5Vl`OhN5qL( zZzywI2#k$^QoZ!r> size of the string */ +var_dump(substr_count($str, "t", 25)); + +/* Using offset and length to go beyond the size of the string: + Warning message expected, as length+offset > length of string */ +var_dump( substr_count($str, "i", 5, 15) ); + +/* length as Null */ +var_dump( substr_count($str, "t", "", "") ); +var_dump( substr_count($str, "i", NULL, NULL) ); - $a = str_repeat("abcacbabca", 100); - var_dump(@substr_count($a, "bca")); +echo "Done\n"; - var_dump(substr_count($a, "bca", 200)); - var_dump(substr_count($a, "bca", 200, 50)); ?> ---EXPECT-- +--EXPECTF-- +***Testing basic operations *** bool(false) bool(false) int(0) @@ -27,3 +103,69 @@ int(100) int(200) int(160) int(10) + +*** Testing possible variations *** +-- 3rd or 4th arg as string -- +int(1) +int(1) + +Notice: A non well formed numeric value encountered in %s on line %d +int(2) + +Notice: A non well formed numeric value encountered in %s on line %d + +Notice: A non well formed numeric value encountered in %s on line %d +int(2) + +-- 3rd or 4th arg as NULL -- + +Warning: substr_count() expects parameter 3 to be long, string given in %s on line %d +NULL + +Warning: substr_count() expects parameter 3 to be long, string given in %s on line %d +NULL + +Warning: substr_count() expects parameter 3 to be long, string given in %s on line %d +NULL +int(0) +int(2) + +-- overlapped substrings -- +int(2) +int(2) + +-- complex strings containing other than 7-bit chars -- +int(2) +int(2) +int(1) + +-- heredoc string -- +int(14) +int(16) + +-- heredoc null string -- +int(0) +int(0) +int(0) + +*** Testing error conditions *** + +Warning: substr_count() expects at least 2 parameters, 0 given in %s on line %d +NULL + +Warning: substr_count() expects at most 4 parameters, 5 given in %s on line %d +NULL + +Warning: substr_count(): Offset should be greater than or equal to 0 in %s on line %d +bool(false) + +Warning: substr_count(): Offset value 25 exceeds string length in %s on line %d +bool(false) + +Warning: substr_count(): Offset value 5 exceeds string length in %s on line %d +bool(false) + +Warning: substr_count() expects parameter 3 to be long, string given in %s on line %d +NULL +int(0) +Done diff --git a/ext/standard/tests/strings/trim1.phpt b/ext/standard/tests/strings/trim1.phpt new file mode 100644 index 0000000000000000000000000000000000000000..b9323afbdf6e8903e1a2be1534680c41373ec97e GIT binary patch literal 2046 zcmcgtT~FIU5ahM@D^?arBuW}5K&gNhsU=9QXoEyht2R~SI7eb?-&yA~AFBB8oju1P zF@f}{4^iyw?B34o?4{Z4cQ5+Qrs&Jek~LAXU8Ad9g*MVkG@GZN&bo*m9jDV&h*q7> zjkem}r}BU@z}2KkDqrv${cOx4;WRLDl-XZY6I7=Q;8VJtMpkBN5K7wChP0hZLyQbU zD@}&ejZO%^(nwAsrTBR368zk=C&c6x{?S z3P!P{CK+h~KrNC`>r&IL?!FyC6CT)Tp)$ z_mKY2V1FH!380S{eOQyrHE^CxCPNL40yD{FqO8-D)u$jMW(5hxTH;w3gN73K#Wcu` zBV$1;1iXR8uxvSIuR)&Yh*xn$%Sa+%S-_R(6<8+euuO%`$Y)ApU=gMju^(NB<*@4Y zmvHsE8>eWsen_L8D2Y@ys}giawp#Q>8wt~~Iqp&kCyt?6GJ-YPb7u04IEB%16oeUA z_q}Y8icYKuYglMQ1z~1){I(3M{jWFt9EB+7vH|W_h$dCd+_DeWIDKuu7Af4 z;Kstp#|ClR$gvI=wto|Xf#}iEQMY#@@=UPvmSF;sL-Bn7%jo$$Doyi2kSosye5uV^ zDm6LLN<#bN_qcSs-_J4EQ{1}(DLgB`2Ggv3X(Qs#LzTB31Ya#Ja9N|hj}XyP5IZ{$ z?^QE7DAw(q5Z?mBu|%U*=do7Spq>9%Y*C2nDwZ1VLPB1tif-!-Ul!z7=2H`v Oh1y(b(b7m~zlpzkd4*5_ literal 0 HcmV?d00001 -- 2.50.1