- var_dump: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$str = <<<EOD
http://localhost:8000/search/fa?q=sth
http://localhost:8000/search?q=sth
http://localhost:8000/search
http://localhost:8000/search/fa
EOD;
preg_match_all('/^(.*?)\/(\w{2,})(?:\?(.*?)|)$/mis',$str,$p);
echo '<pre/>';
$final_array = array();
$i = 0;
foreach($p[1] as $myP){
if( $p[2][$i] == 'fa'){
$p[2][$i] = 'en';
} else if($p[2][$i] != 'en') {
$p[2][$i] = $p[2][$i].'/'.'en';
}
$final_array[$i] = $myP.'/'.$p[2][$i];
$i++;
}
var_dump($final_array);