我正在尝试替换数组中的单词,但只能在帖子的最后一个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,我是否会更改位置来修复它?我该怎么改变?
答案 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);