2017-09-24 23 views
-4

我有一個網址,將永遠看起來像這樣PHP刪除字符串的中間部分

https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg 

我需要的,以便它讀取

用PHP刪除分辨率符「-150x150」一些變化
https://sitename/wp-content/uploads/2017/09/59a778097ae6e.jpeg 
+0

向我們展示您到目前爲止所嘗試的內容。請閱讀:[如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)以及[我如何問一個好問題?](http://stackoverflow.com/幫助/如何問) –

+0

是'-'單獨的還是負的整數?也許用' - \ d + x \ d +'替換掉任何東西,或者如果是負數的話 - '\ d + x - ?\ d +'。 – chris85

+0

'( - \ d + x \ d +)(?= \。)'? – ctwheels

回答

1

如果它總是-150x150你可以用str_replace()

$url = "https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg"; 
$stripped = str_replace('-150x150', '', $url); 
var_dump($stripped); 
// string(62) "https://sitename/wp-content/uploads/2017/09/59a778097ae6e.jpeg" 

如果您需要一種方法來剔除任何分辨率,您可以使用該正則表達式:

$url = "https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg"; 
$stripped = preg_replace('/-[0-9]+x[0-9]+/', '', $url); 
var_dump($stripped); 
// string(62) "https://sitename/wp-content/uploads/2017/09/59a778097ae6e.jpeg" 
0

你好,你可以使用strpos()substr()功能

<?php 

$str1 = "https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg"; 
$str2 = "-150x150"; 

$pos = strpos($str1, $str2); 

$part1 = substr($str1, $pos); 
$part2 = substr($pos+1, strlen($str1)); 

$final_str = $part1.$part2; 
echo $final_str; 


?> 

或喲ü也可以只用str_replace()並沒有更換URL的一部分:

<?php 

$url = "https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg"; 
$str = "-150x150"; 

// will replace $str by '' in $url 
$url = str_replace($str, '', $url); 
echo $url; 

?> 
+0

爲什麼不使用'str_replace()'? –

0

如果它不是一個總是150x150,這裏有一個漂亮的解決方案。

$url = 'https://sitename/wp-content/uploads/2017/09/59a778097ae6e-150x150.jpeg'; 

首先得到擴展

$ext = explode('.', $url); 
    $ext = $ext[count($ext)-1]; 

然後通過分割 ' - '

$array = explode('-', $url); 

彈出,這將是該決議的最後一個數組元素(150×150這裏)

array_pop($array); 

然後由' - 'a撞擊獲取並連接到新的url的擴展名

$new_url = implode('-', $array). '.' .$ext;