3v4l.org

run code in 300+ PHP versions simultaneously
<?php $base = '/some/dir'; $path = '/foo/bar'; $protect = array('/bar','/foo','/bob'); foreach($protect as $needle) { echo "Checking for needle $needle in path $path:\n"; $sp = strpos($path,$needle); echo "Strpos result: $sp\n"; if( $sp !==FALSE ) { echo "Path contains the needle\n"; $s=strcmp( $needle, $path ); echo "Strcmp result: $s\n"; if( $s > 0 ) { echo "The path is a subfolder inside the needle"; } else { echo "The path isn't a subfolder inside the needle"; } } else { echo "The path doesn't contain the needle"; } echo "\n\n"; } echo "Check completed"; ?>
Output for 8.2.0 - 8.2.17, 8.3.0 - 8.3.4
Checking for needle /bar in path /foo/bar: Strpos result: 4 Path contains the needle Strcmp result: -1 The path isn't a subfolder inside the needle Checking for needle /foo in path /foo/bar: Strpos result: 0 Path contains the needle Strcmp result: -1 The path isn't a subfolder inside the needle Checking for needle /bob in path /foo/bar: Strpos result: The path doesn't contain the needle Check completed
Output for 7.3.30 - 7.3.33, 7.4.19 - 7.4.20, 7.4.23 - 7.4.33, 8.0.1, 8.0.5 - 8.0.7, 8.0.9 - 8.0.30, 8.1.0 - 8.1.27
Checking for needle /bar in path /foo/bar: Strpos result: 4 Path contains the needle Strcmp result: -1 The path isn't a subfolder inside the needle Checking for needle /foo in path /foo/bar: Strpos result: 0 Path contains the needle Strcmp result: -4 The path isn't a subfolder inside the needle Checking for needle /bob in path /foo/bar: Strpos result: The path doesn't contain the needle Check completed
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 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.29, 7.4.0 - 7.4.16, 7.4.21 - 7.4.22, 8.0.0, 8.0.2 - 8.0.3, 8.0.8
Checking for needle /bar in path /foo/bar: Strpos result: 4 Path contains the needle Strcmp result: -1024 The path isn't a subfolder inside the needle Checking for needle /foo in path /foo/bar: Strpos result: 0 Path contains the needle Strcmp result: -4 The path isn't a subfolder inside the needle Checking for needle /bob in path /foo/bar: Strpos result: The path doesn't contain the needle Check completed

preferences:
300.67 ms | 406 KiB | 461 Q