3v4l.org

run code in 300+ PHP versions simultaneously
<?php $word = 'Heizölrückstoßdämpfer'; echo sprintf("%s is %d characters long\n", $word, mb_strlen($word)); echo "Lets look for 'ß' with mb_strrpos with negative offset\n"; for ($i = 0; $i < mb_strlen($word); $i++) { echo sprintf( "Offset -%02d: % 2d - %s - %s (%d/%d)\n", $i, mb_strrpos($word, 'ß', -$i), mb_substr($word, 0, -$i), mb_substr($word, -$i), mb_strlen(mb_substr($word, 0, -$i)), mb_strlen(mb_substr($word, -$i)) ); } echo "\nLets look for 'ß' with mb_strrpos with positive offset\n"; for ($i = 0; $i < mb_strlen($word); $i++) { echo sprintf( "Offset %02d: % 2d - %s - %s (%d/%d)\n", $i, mb_strrpos($word, 'ß', $i), mb_substr($word, 0, $i), mb_substr($word, $i), mb_strlen(mb_substr($word, 0, $i)), mb_strlen(mb_substr($word, $i)) ); }
Output for 5.6.0 - 5.6.30, 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
Heizölrückstoßdämpfer is 21 characters long Lets look for 'ß' with mb_strrpos with negative offset Offset -00: 13 - - Heizölrückstoßdämpfer (0/21) Offset -01: 13 - Heizölrückstoßdämpfe - r (20/1) Offset -02: 13 - Heizölrückstoßdämpf - er (19/2) Offset -03: 13 - Heizölrückstoßdämp - fer (18/3) Offset -04: 13 - Heizölrückstoßdäm - pfer (17/4) Offset -05: 13 - Heizölrückstoßdä - mpfer (16/5) Offset -06: 13 - Heizölrückstoßd - ämpfer (15/6) Offset -07: 13 - Heizölrückstoß - dämpfer (14/7) Offset -08: 13 - Heizölrücksto - ßdämpfer (13/8) Offset -09: 0 - Heizölrückst - oßdämpfer (12/9) Offset -10: 0 - Heizölrücks - toßdämpfer (11/10) Offset -11: 0 - Heizölrück - stoßdämpfer (10/11) Offset -12: 0 - Heizölrüc - kstoßdämpfer (9/12) Offset -13: 0 - Heizölrü - ckstoßdämpfer (8/13) Offset -14: 0 - Heizölr - ückstoßdämpfer (7/14) Offset -15: 0 - Heizöl - rückstoßdämpfer (6/15) Offset -16: 0 - Heizö - lrückstoßdämpfer (5/16) Offset -17: 0 - Heiz - ölrückstoßdämpfer (4/17) Offset -18: 0 - Hei - zölrückstoßdämpfer (3/18) Offset -19: 0 - He - izölrückstoßdämpfer (2/19) Offset -20: 0 - H - eizölrückstoßdämpfer (1/20) Lets look for 'ß' with mb_strrpos with positive offset Offset 00: 13 - - Heizölrückstoßdämpfer (0/21) Offset 01: 13 - H - eizölrückstoßdämpfer (1/20) Offset 02: 13 - He - izölrückstoßdämpfer (2/19) Offset 03: 13 - Hei - zölrückstoßdämpfer (3/18) Offset 04: 13 - Heiz - ölrückstoßdämpfer (4/17) Offset 05: 13 - Heizö - lrückstoßdämpfer (5/16) Offset 06: 13 - Heizöl - rückstoßdämpfer (6/15) Offset 07: 13 - Heizölr - ückstoßdämpfer (7/14) Offset 08: 13 - Heizölrü - ckstoßdämpfer (8/13) Offset 09: 13 - Heizölrüc - kstoßdämpfer (9/12) Offset 10: 13 - Heizölrück - stoßdämpfer (10/11) Offset 11: 13 - Heizölrücks - toßdämpfer (11/10) Offset 12: 13 - Heizölrückst - oßdämpfer (12/9) Offset 13: 13 - Heizölrücksto - ßdämpfer (13/8) Offset 14: 0 - Heizölrückstoß - dämpfer (14/7) Offset 15: 0 - Heizölrückstoßd - ämpfer (15/6) Offset 16: 0 - Heizölrückstoßdä - mpfer (16/5) Offset 17: 0 - Heizölrückstoßdäm - pfer (17/4) Offset 18: 0 - Heizölrückstoßdämp - fer (18/3) Offset 19: 0 - Heizölrückstoßdämpf - er (19/2) Offset 20: 0 - Heizölrückstoßdämpfe - r (20/1)

preferences:
145.04 ms | 418 KiB | 5 Q