PHP删除字符串的中间部分

时间:2017-09-24 00:02:55

标签: php regex

我有一个总是看​​起来像这个

的变体的网址
"stickWood"

我需要用PHP删除分辨率说明符" -150x150"所以它读取

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

3 个答案:

答案 0 :(得分: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"

答案 1 :(得分: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()并将网址的部分替换为空:

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

?>

答案 2 :(得分:0)

如果它不总是150x150,这是一个很好的解决方案。

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

首先获得扩展

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

然后按&#39; - &#39;

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

弹出最后一个将成为分辨率的数组元素(此处为150x150)

    array_pop($array);

然后由&#39; - &#39;内爆再次并将扩展连接到新URL

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