2017-03-17 22 views
-6

こんにちは後わずか3文字を削除し私は例えば、この文字列を持っている特定の文字列

私は基本的に、私は it/一部を削除したい、 bbbb-bbbbbbbbbb-2/後わずか3文字を削除したい
http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/ 

(これ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

正規表現を使用して、文字列のターゲット部分を選択し、preg_replace()で実行することができます。コードの

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

参照結果demo

0

の配列であなたの言語を定義します。配列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構造が変更されない場合、次のように動作します。 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/" 
関連する問題