我试图保存一个字符串,并且数据与我不想在数组结尾的东西进来。php删除括号后的所有内容
["bunch", "of", "stuff"]unwantedtext
我正在努力摆脱右括号后的所有内容。这是我最近的尝试。我最终得到一个空文件。
$toPost = substr($str, 0, strrpos($str, '\]'));
也许我的逃生工作不正常?我也尝试过双引号。
这是对原始问题的更新。
这是我的javascript功能:
goalChange = function() {
var i, key, len, postThis;
key = void 0;
postThis = {};
i = 0;
len = localStorage.length;
while (i < len) {
key = localStorage.key(i);
postThis[key] = "" + localStorage.getItem(key);
i++;
}
postThis.goals = localStorage.getItem("goals");
postThis.userid = username;
return $.ajax({
url: "goalChange.php",
type: "POST",
data: postThis,
success: function(response, textStatus, jqXHR) {
return console.log("Yay, the save worked!");
},
error: function(jqXHR, textStatus, errorThrown) {
return console.log("Didn't work so good...");
}
});
};
这里的PHP文件:
<?
if ($_POST) {
$user = $_POST['userid']; // ADDED THIS LINE AND CHANGED NEXT TO GET STUFF INTO THE USERS OWN FILE
$logFile = dirname($_SERVER['SCRIPT_FILENAME']) . "/" . $user . ".json";
if (!file_exists($logFile)) {
touch($logFile);
chmod($logFile, 0777);
}
$newStr = ($_POST);
$str = str_replace('\\', '', $newStr);
$toPost = substr($str, 0, strrpos($str, ']'));
file_put_contents($logFile, $toPost);
echo "OK";
return;
}
我需要使用用户ID来保存文件的正确名称。这是工作,但该文件正在获取用户ID添加到我想保留的数组的末尾。
感谢您的帮助。
我会先看看那些不需要的文本是如何到达那里的。解决问题,不要做一个解决方法。 –
@JustinWood是的,这是我的计划,但我很好奇搞清楚如何使用strrpos,并让自己陷入了这个问题。一旦我看到这里提供的问题/答案没有涉及到这个确切的问题,它可能值得回答。 – charliemagee
如果您向我们展示如何获取该数组和文本,我们可能会引导您将其删除。 –