如何删除JSON的某些部分

时间:2018-08-03 15:50:02

标签: php json

对不起,我的英语不好。这是我的JSON返回。

https://images-na.ssl-images-amazon.com/images/M/MV5BYzc3OGZjYWQtZGFkMy00YTNlLWE5NDYtMTRkNTNjODc2MjllXkEyXkFqcGdeQXVyNjExODE1MDc@._V1_UY268_CR5,0,182,268_AL_.jpg

如何删除UY268_CR5,0,182,268_AL_部分。特别是那部分。我有很多这样的链接。每个都有不同的字符串。例如:

https://m.media-amazon.com/images/M/MV5BYWNlMWMxOWYtZWI0Mi00ZTg0LWEwZTMtZTEzZDY0NzAxYTA4XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_UX182_CR0,0,182,268_AL_.jpg

如图所示,情况有所不同。我要删除部分UX182_CR0,0,182,268_AL_。我得到的每个结果都具有几乎相同的结构,但是我要删除的末尾部分。我在laravel上,所以我正在编码来自控制器的jsons结果。有没有人可以用php完成?

更新

这是我尝试的代码。

$json = json_decode($data,true);

    $slice = str_replace("UY268_CR5,0,182,268_AL_","", $json);

    return $slice ['poster'];

已删除字符串,但是上面提到的具有不同URL的不同字符串呢?

1 个答案:

答案 0 :(得分:0)

您可以结合使用先行后退

来使用preg_replace()
<?php
$re = '/(?<=_V1_)(.+?)(?=.jpg)/';
$str = 'https://m.media-amazon.com/images/M/MV5BYWNlMWMxOWYtZWI0Mi00ZTg0LWEwZTMtZTEzZDY0NzAxYTA4XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_UX182_CR0,0,182,268_AL_.jpg';
$subst = '';

$result = preg_replace($re, $subst, $str, 1);
echo "The result of the substitution is ".$result;

?>

演示: https://eval.in/1044470

REFF: Regex lookahead, lookbehind and atomic groups

regex解释: https://regex101.com/r/aHAw5f/1