PHP删除字符串的中间部分

I have a url that will always look like some variation of this

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

I need to remove with PHP the resolution specifier "-150x150" so that it reads

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

If it's always -150x150 you can just use 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"

If you need a way to strip out any resolution, you can use a regular expression for that:

$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"

hello you can use strpos() and substr() functions

<?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;


?>

or you can also just use str_replace() and replace the part of the url by nothing :

<?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;

?>

If it's not always 150x150, here's a nifty solution.

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

First get the extension

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

Then split by '-'

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

Pop the last array element which will be the resolution (150x150 here)

    array_pop($array);

Then implode by '-' again and concatenate the extension to the new url

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