PHP修剪后的某个单词

时间:2013-07-20 05:43:04

标签: php

我正在尝试替换数组中的单词,但只能在帖子的最后一个empty.png之后" newOrder"叫做pixlist。现在我把它替换为什么,但希望在$ pixlist的最后一个empty.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);

甚至更好,删除最后一个字后的所有内容" empty.png"来自$_POST["newOrder"]

P.S。 $ pixlist是一个图像数组

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

这有效,但它会删除单词empty.png,我是否会更改位置来修复它?我该怎么改变?

4 个答案:

答案 0 :(得分:1)

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

如果你想保持empty.png:

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

答案 1 :(得分:0)

你在这里尝试做什么并不完全清楚。什么是'empty.png'?我只看到'blank.png'。什么是$_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);

答案 2 :(得分:0)

 $pixlist = $_POST["newOrder"];

所以,我认为$pixlist是字符串而不是数组。

好的,尝试使用此代码:

  $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

答案 3 :(得分:0)

你可以爆炸它...替换数组中的最后一个元素然后内爆它

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