3v4l.org

run code in 300+ PHP versions simultaneously
<?php function generateRandomString(){ static $baz = ['consectetur', 'dolor', 'pellentesque', '__TEMPORARY_PLACEHOLDER__']; return array_shift($baz); } $message = "Lorem %tag2% ipsum dolor %tag1% sit amet, consectetur %tag2% adipiscing elit. Phasellus vestibulum tortor vitae sagittis %tag1% laoreet. Proin pellentesque urna id %tag1% rhoncus %tag2% scelerisque."; echo "generate a unique string that is not present in the above text\n"; do{ $uniqueToken = generateRandomString(); }while(strpos($message, $uniqueToken) !== false); var_dump($uniqueToken); echo "\n"; echo "backup fake tags\n"; $fakeTags = [ '%tag1%' => $uniqueToken . '1', '%tag2%' => $uniqueToken . '2', '%tag3%' => $uniqueToken . '3', '%tag4%' => $uniqueToken . '4', ]; $message = str_replace( array_keys($fakeTags), array_values($fakeTags), $message ); var_dump($message); echo "\n"; echo "apply actual tags\n"; $message = "Welcome %tag1%! " . $message . " Gbye %tag2%"; var_dump($message); echo "\n"; echo "do actual replacement\n"; $actualTags = [ '%tag1%' => 'Pluto', '%tag2%' => 'Donald', ]; $message = str_replace( array_keys($actualTags), array_values($actualTags), $message ); var_dump($message); echo "\n"; echo "restore fake tags\n"; $message = str_replace( array_values($fakeTags), array_keys($fakeTags), $message ); var_dump($message); echo "\n";
Output for 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.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
generate a unique string that is not present in the above text string(25) "__TEMPORARY_PLACEHOLDER__" backup fake tags string(318) "Lorem __TEMPORARY_PLACEHOLDER__2 ipsum dolor __TEMPORARY_PLACEHOLDER__1 sit amet, consectetur __TEMPORARY_PLACEHOLDER__2 adipiscing elit. Phasellus vestibulum tortor vitae sagittis __TEMPORARY_PLACEHOLDER__1 laoreet. Proin pellentesque urna id __TEMPORARY_PLACEHOLDER__1 rhoncus __TEMPORARY_PLACEHOLDER__2 scelerisque." apply actual tags string(346) "Welcome %tag1%! Lorem __TEMPORARY_PLACEHOLDER__2 ipsum dolor __TEMPORARY_PLACEHOLDER__1 sit amet, consectetur __TEMPORARY_PLACEHOLDER__2 adipiscing elit. Phasellus vestibulum tortor vitae sagittis __TEMPORARY_PLACEHOLDER__1 laoreet. Proin pellentesque urna id __TEMPORARY_PLACEHOLDER__1 rhoncus __TEMPORARY_PLACEHOLDER__2 scelerisque. Gbye %tag2%" do actual replacement string(345) "Welcome Pluto! Lorem __TEMPORARY_PLACEHOLDER__2 ipsum dolor __TEMPORARY_PLACEHOLDER__1 sit amet, consectetur __TEMPORARY_PLACEHOLDER__2 adipiscing elit. Phasellus vestibulum tortor vitae sagittis __TEMPORARY_PLACEHOLDER__1 laoreet. Proin pellentesque urna id __TEMPORARY_PLACEHOLDER__1 rhoncus __TEMPORARY_PLACEHOLDER__2 scelerisque. Gbye Donald" restore fake tags string(225) "Welcome Pluto! Lorem %tag2% ipsum dolor %tag1% sit amet, consectetur %tag2% adipiscing elit. Phasellus vestibulum tortor vitae sagittis %tag1% laoreet. Proin pellentesque urna id %tag1% rhoncus %tag2% scelerisque. Gbye Donald"

preferences:
91.95 ms | 2662 KiB | 4 Q