こんにちは後わずか3文字を削除し私は例えば、この文字列を持っている特定の文字列
私は基本的に、私はit/
一部を削除したい、
bbbb-bbbbbbbbbb-2/
後わずか3文字を削除したい
http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/
(これit/
部分はないかもしれません常にit
ですが、es/
またはen/
または異なる言語は常に2文字)
こんにちは後わずか3文字を削除し私は例えば、この文字列を持っている特定の文字列
私は基本的に、私はit/
一部を削除したい、
bbbb-bbbbbbbbbb-2/
後わずか3文字を削除したい
http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/
(これit/
部分はないかもしれません常にit
ですが、es/
またはen/
または異なる言語は常に2文字)
正規表現を使用して、文字列のターゲット部分を選択し、preg_replace()
で実行することができます。コードの
$url = "http://aaa-aaaa.com/bbbb-bbbbbbbbbb-2/it/clients/";
echo preg_replace("@(.*)\w{2}/([^/]+/)[email protected]", "$1$2", $url);
参照結果demo
の配列であなたの言語を定義します。配列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;
}
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/"
何か試しましたか? –
'http:// aaa-aaaa.com/bbbb-bbbbbbbbbb-2 /' - 疑似URLが定数かどうかは分かりません。 'parse_url()'(*および/または 'substr()' *)でこれを取り除くことができます。 –
@u_mulder str_replace( "it/''、" "、$ url);これはそれを削除しますが、これは変更できますので、すべての時間で動作しません。 – Alfred