2014-12-19 95 views
0

我需要從url中刪除第二個子字符串。所以,我的網址是這樣的:preg替換url中的第二個子字符串發生

http://example.com/<category>/<category>-<subcategory>-<id> 

例如,

http://example.com/laptop/laptop-hp-probook-101 must be http://example.com/laptop/hp-probook-101 

http://example.com/computer-parts/computer-parts-cool-motherboard-123 must be http://example.com/computer-parts/cool-motherboard-123 

我嘗試這樣做:

$new_url = preg_replace("$category", "", absoluteurl(<url>), 1); 

,但它不能...

+0

如果你所提到的模式'$它會幫助類別'是 – andrew

+0

[preg \ _replace()替換第二次出現的可能的重複](http://stackoverflow.com/questions/23239061/preg-replace-rep花邊第二次出現) – vaso123

+0

$類別可以是「筆記本」,「電腦零件」等。 – Larry

回答

1

您可以使用反向引用:

<?php 
$str = 'http://example.com/laptop/laptop-hp-probook-101'; 
//must be http://example.com/laptop/hp-probook-101 
$str = preg_replace('/\/(.*?)\/\1-/', '/$1/', $str); 
print $str; 

輸出:

http://example.com/laptop/hp-probook-101

+0

謝謝!有用! – Larry

0

試試這個

<?php 

$text = 'This is a test'; 

echo substr_count($text, 'is'); // 2 
0
$url='https://www.yourdomain.com/laptops/laptops-hp-laptop-laptopid'; 
$arr1=explode("://",$url); 
$arr2=explode("/",$arr1[1]); 
$arr2[2]=str_replace ($arr2[1]."-" , "" , $arr2[2]); 
$s2=implode("/",$arr2); 
$newurl=$arr1[0]."://".$s2; 
echo $newurl; 

你可以嘗試這裏所有上述的http://writecodeonline.com/php/

相關問題