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 %d: %d - %s(%d) - %s(%d) - %s(%d)\n", -$i, mb_strrpos($word, 'ß', -$i), mb_substr($word, 0, -$i), mb_strlen(mb_substr($word, 0, -$i)), 'ß', 1, mb_substr($word, -$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 %d: %d - %s(%d) - %s(%d) - %s(%d)\n", $i, mb_strrpos($word, 'ß', $i), mb_substr($word, 0, $i), mb_strlen(mb_substr($word, 0, $i)), 'ß', 1, mb_substr($word, $i), mb_strlen(mb_substr($word, $i)) ); }
Output for 5.6.0 - 5.6.29, 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 0: 13 - (0) - ß(1) - Heizölrückstoßdämpfer(21) Offset -1: 13 - Heizölrückstoßdämpfe(20) - ß(1) - r(1) Offset -2: 13 - Heizölrückstoßdämpf(19) - ß(1) - er(2) Offset -3: 13 - Heizölrückstoßdämp(18) - ß(1) - fer(3) Offset -4: 13 - Heizölrückstoßdäm(17) - ß(1) - pfer(4) Offset -5: 13 - Heizölrückstoßdä(16) - ß(1) - mpfer(5) Offset -6: 13 - Heizölrückstoßd(15) - ß(1) - ämpfer(6) Offset -7: 13 - Heizölrückstoß(14) - ß(1) - dämpfer(7) Offset -8: 13 - Heizölrücksto(13) - ß(1) - ßdämpfer(8) Offset -9: 0 - Heizölrückst(12) - ß(1) - oßdämpfer(9) Offset -10: 0 - Heizölrücks(11) - ß(1) - toßdämpfer(10) Offset -11: 0 - Heizölrück(10) - ß(1) - stoßdämpfer(11) Offset -12: 0 - Heizölrüc(9) - ß(1) - kstoßdämpfer(12) Offset -13: 0 - Heizölrü(8) - ß(1) - ckstoßdämpfer(13) Offset -14: 0 - Heizölr(7) - ß(1) - ückstoßdämpfer(14) Offset -15: 0 - Heizöl(6) - ß(1) - rückstoßdämpfer(15) Offset -16: 0 - Heizö(5) - ß(1) - lrückstoßdämpfer(16) Offset -17: 0 - Heiz(4) - ß(1) - ölrückstoßdämpfer(17) Offset -18: 0 - Hei(3) - ß(1) - zölrückstoßdämpfer(18) Offset -19: 0 - He(2) - ß(1) - izölrückstoßdämpfer(19) Offset -20: 0 - H(1) - ß(1) - eizölrückstoßdämpfer(20) Lets look for 'ß' with mb_strrpos with positive offset Offset 0: 13 - (0) - ß(1) - Heizölrückstoßdämpfer(21) Offset 1: 13 - H(1) - ß(1) - eizölrückstoßdämpfer(20) Offset 2: 13 - He(2) - ß(1) - izölrückstoßdämpfer(19) Offset 3: 13 - Hei(3) - ß(1) - zölrückstoßdämpfer(18) Offset 4: 13 - Heiz(4) - ß(1) - ölrückstoßdämpfer(17) Offset 5: 13 - Heizö(5) - ß(1) - lrückstoßdämpfer(16) Offset 6: 13 - Heizöl(6) - ß(1) - rückstoßdämpfer(15) Offset 7: 13 - Heizölr(7) - ß(1) - ückstoßdämpfer(14) Offset 8: 13 - Heizölrü(8) - ß(1) - ckstoßdämpfer(13) Offset 9: 13 - Heizölrüc(9) - ß(1) - kstoßdämpfer(12) Offset 10: 13 - Heizölrück(10) - ß(1) - stoßdämpfer(11) Offset 11: 13 - Heizölrücks(11) - ß(1) - toßdämpfer(10) Offset 12: 13 - Heizölrückst(12) - ß(1) - oßdämpfer(9) Offset 13: 13 - Heizölrücksto(13) - ß(1) - ßdämpfer(8) Offset 14: 0 - Heizölrückstoß(14) - ß(1) - dämpfer(7) Offset 15: 0 - Heizölrückstoßd(15) - ß(1) - ämpfer(6) Offset 16: 0 - Heizölrückstoßdä(16) - ß(1) - mpfer(5) Offset 17: 0 - Heizölrückstoßdäm(17) - ß(1) - pfer(4) Offset 18: 0 - Heizölrückstoßdämp(18) - ß(1) - fer(3) Offset 19: 0 - Heizölrückstoßdämpf(19) - ß(1) - er(2) Offset 20: 0 - Heizölrückstoßdämpfe(20) - ß(1) - r(1)

preferences:
139.71 ms | 419 KiB | 5 Q