Я пытаюсь сохранить строку, и данные поступают с материалами, которые мне не нужны в конце массива.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;
}
мне нужно использовать идентификатор пользователя, чтобы сохранить файл с правильным именем. Это работает, но файл получает идентификатор пользователя, добавленный в конец массива, который я хочу сохранить.
Спасибо за помощь.
Я бы посмотрел, как туда попадает нежелательный текст. Устраните проблему, не создавайте обходной путь. –
@ JustinWood Да, это мой план, но мне стало любопытно выяснить, как использовать strrpos, и я сам зашел на эту проблему. Как только я увидел, что доступные вопросы/ответы здесь не затрагивают эту точную проблему, возможно, стоит ответить. – charliemagee
Если вы покажете нам, как вы получаете этот массив и текст, мы можем помочь вам удалить его. –