2017-03-17 104 views
-6

喜後只刪除3個字符我有這個字符串例如特定字符串

http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/ 

我想bbbb-bbbbbbbbbb-2/後刪除只有3個字符,所以基本上我想刪除it/部分(這it/部分不得永遠是it但它可以es/en/或不同語言的總是2個字符)

+4

你嘗試過什麼嗎? –

+1

'http:// aaa-aaaa.com/bbbb-bbbbbbbbbb-2 /' - 很難說如果這個僞URL是不變的。你可以用'parse_url()'(*和/或'substr()'*)來解決這個問題。 –

+0

@u_mulder str_replace(「it /'',」「,$ url);這將刪除它,但它可以改變,所以它不會一直工作 – Alfred

回答

0

$url = "http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/"; 
echo preg_replace("@(.*)\w{2}/([^/]+/)[email protected]", "$1$2", $url); 

查看結果在定義數組您的語言。如果未在數組中定義一種語言,URL將是相同的。

$mLanguages = ["en","it","bg","gr"]; 

$mURL = "http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/"; 

$mURL = removeLanguageFromURL($mURL, $mLanguages); 

echo $mURL; // Output http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/clients/ 

function removeLanguageFromUrl($mURL, $mLanguages){ 

    foreach($mLanguages as $language){ // Search languages 

     if(strpos($mURL, $language) !== false) // If language is found in url remove it 
      $mURL = str_replace('/' . $language,'', $mURL); 

    } 

    return $mURL; 

} 
1

如果URL結構沒有改變,下面的工作將會生效。我假設你想要移除網址的語言部分。

<?php 

$url = "http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/"; 

$parsedURL = parse_url($url); 
$path = explode('/', $parsedURL['path']); 
unset($path[2]); 
$url = "{$parsedURL['scheme']}://{$parsedURL['host']}"; 
$url .= implode('/', $path); 

var_dump($url); 
// string(47) "http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/clients/"