-1

配列内の単語を置き換えようとしていますが、pixlist という投稿「newOrder」の最後の empty.png の後でのみです。現在、単語を何も置き換えていませんが、$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"]

PS $pixlist は画像の配列です

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

これは機能しますが、empty.png という単語を削除します。位置を変更して修正しますか? 何を変更すればよいですか?

4

4 に答える 4

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
于 2013-07-20T06:12:18.067 に答える
0

あなたはそれを爆発させることができます...配列の最後の要素を置き換えてから内破します

$data = explode("empty.png", $str);
$last = array_pop($data);
$last = str_replace($replaceThis,"", $last);
array_push($data, $last);
echo implode("empty.png", $data);
于 2013-07-20T06:19:38.497 に答える