3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(firstWordPosition('Will company any do any job, (are there any)?', 'any')); var_dump(firstWordPosition('Will *any* company do *any* job, (are there any)?', 'any')); function firstWordPosition($str, $word) { // There are others, maybe also pass this in or array_merge() for more control. $nonchars = ["'",'"','.',',','!','?','(',')','^','$','#','\n','\r\n','\t',]; // You could also do a strpos() with an if and another argument passed in. // Note that we're padding the $str to with spaces to match begin/end. $pos = stripos(str_replace($nonchars, ' ', " $str "), " $word "); // Have to account for the for-space on " $str ". return $pos ? $pos - 1: false; }
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 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.30, 8.2.0 - 8.2.24, 8.3.0 - 8.3.12
int(12) int(43)

preferences:
78.78 ms | 407 KiB | 5 Q