PHP在某个单词后修剪

PHP在某个单词后修剪,php,Php,我正在尝试替换数组中的单词,但仅在名为pixlist的文章“newOrder”中最后一个空的.png之后。现在我让它什么都不替换单词,但希望在$pixlist的最后一个空的.png之后进行字符串替换 $replaceThis = array("blank.png", "sold.png", "payed.png"); $pixlist = $_POST["newOrder"]; $pixlist = str_replace($replaceThis,'', $pixlist); $trimme

我正在尝试替换数组中的单词,但仅在名为pixlist的文章“newOrder”中最后一个空的.png之后。现在我让它什么都不替换单词,但希望在$pixlist的最后一个空的.png之后进行字符串替换

$replaceThis = array("blank.png", "sold.png", "payed.png");
$pixlist = $_POST["newOrder"];
$pixlist =  str_replace($replaceThis,'', $pixlist);
$trimmed = trim($pixlist);

$filename  =  'pics.txt';
$handle =  fopen($filename, 'w');
fwrite($handle, $trimmed);
fclose($handle);
或者更好的是,从
$\u POST[“newOrder”]

p.S.$pixlist是一组图像

$pixlist=trim(substr($pixlist,0,strrpos($pixlist,'empty.png'))


这可以工作,但它会删除单词empty.png,我是否要更改位置来修复它?我应该改变什么?

现在还不完全清楚你在这里想做什么。什么是
'empty.png'
?我只看到
'blank.png'
$\u POST[“newOrder”]
应该是什么?它是数组还是字符串?您将其分配给一个名为“pixlist”的变量,因此它听起来像一个列表,这意味着数组

我想我们需要更多的细节才能回答你的问题

另外,我不知道为什么我不能就最初的问题发表评论。很抱歉使用了这个答案,但我不知道还有什么地方可以留言

我仍然不知道我是否完全理解您的问题,但我假设如果给定下面的数组,您希望在最后一次出现“empty.png”之后删除所有内容。如果是这样的话,下面是你如何做到的

$pixlist = array('empty.png', 'image.png', 'empty.png', 'something.png', 'else.png');


// 1. Reverse the array so that we work backwards in from the end, and preserve the original keys.

$pixlist = array_reverse($pixlist, true);


// 2. Search for the first occurance of 'empty.png', since the array was reversed, this will technically be the last occurance.

$key = array_search('empty.png', $pixlist);


// 3. Reverse the array again

$pixlist = array_reverse($pixlist, true);


// 4. Now trim the array using the $key we got from step 2

array_splice($pixlist, $key + 1);


// is now just array('empty.png', 'image.png', 'empty.png');
echo '<pre>';
print_r($pixlist);
$pixlist=array('empty.png','image.png','empty.png','something.png','else.png');
// 1. 反转数组,以便我们从末尾向后工作,并保留原始关键帧。
$pixlist=array\u reverse($pixlist,true);
// 2. 搜索第一次出现的'empty.png',因为数组已反转,从技术上讲,这将是最后一次出现。
$key=array_search('empty.png',$pixlist);
// 3. 再次反转阵列
$pixlist=array\u reverse($pixlist,true);
// 4. 现在使用我们从步骤2中得到的$key来修剪数组
阵列拼接($pixlist,$key+1);
//现在只是数组('empty.png','image.png','empty.png');
回声';
打印(像素列表);
如果要保留empty.png:

 $pixlist = $_POST["newOrder"];
因此,我认为
$pixlist
是字符串而不是数组

好的,尝试使用以下代码:

    $pixlist = 'aaaaaempty.pngabbbbbbbbb';
    $key = 'empty.png';
    $len = strlen($key);
    $pixlist = trim(substr($pixlist, 0, strrpos($pixlist, $key) + $len));
    echo $pixlist;
    // will echo aaaaaempty.png
更新

$data = explode("empty.png", $str);
$last = array_pop($data);
$last = str_replace($replaceThis,"", $last);
array_push($data, $last);
echo implode("empty.png", $data);

你可以引爆它。。。替换数组中的最后一个元素,然后将其内爆


我想执行这个代码
str_replace($replaceThis,,$pixlist)
$\u POST[“newOrder”]
的最后一个单词“empty.png”之后是什么
$\u POST[“newOrder”]
之后是什么?它是一个图片名称数组。如果你能在文章最后一个“empty.png”之后修剪所有东西,那么你能在$_post['newOrder']中发布一个数据样本吗?@srtstrips如果你的数组中没有empty.png字符串该怎么办?是的,这是一个数组,我真正需要的是在最后一个名为“empty.png”的数组之后修剪所有东西这很有效,但是删除了empty.png这个词,我只想删除后面的所有内容,而不是这个词是的,这就是我所需要的,真不敢相信我没有想到这个
  $key = 'empty.png';
  $len = strlen($key);
  $pixlist = trim(substr($pixlist,0,strrpos($pixlist, $key) - $len));
    $pixlist = 'aaaaaempty.pngabbbbbbbbb';
    $key = 'empty.png';
    $len = strlen($key);
    $pixlist = trim(substr($pixlist, 0, strrpos($pixlist, $key) + $len));
    echo $pixlist;
    // will echo aaaaaempty.png
$data = explode("empty.png", $str);
$last = array_pop($data);
$last = str_replace($replaceThis,"", $last);
array_push($data, $last);
echo implode("empty.png", $data);