Php последний символ файла

PHP – удалить последний символ файла

У меня есть небольшой скрипт php, который удаляет последний символ файла.

$contents = file_get_contents($path); rtrim($contents); $contents = substr($contents, 0, -1); $fh = fopen($path, 'w') or die("can't open file"); fwrite($fh, $contents); fclose($fh); 

Таким образом, он считывает содержимое файла, удаляет последний символ, а затем обрезает файл и записывает в него строку. Все это прекрасно работает.

Мое беспокойство состоит в том, что этот файл может содержать много данных, а вызов file_get_contents () будет содержать все эти данные в памяти, что потенциально может привести к максимальному удалению памяти моих серверов.

Есть ли более эффективный способ удалить последний символ из файла?

Solutions Collecting From Web of «PHP – удалить последний символ файла»

$fh = fopen($path, 'r+') or die("can't open file"); $stat = fstat($fh); ftruncate($fh, $stat['size']-1); fclose($fh); 

Для получения дополнительной помощи см. Это

  • Найти все hrefs на странице и заменить ссылку, поддерживающую предыдущую ссылку – PHP
  • laravel 4 постоянных данных – jquery ajax submit
  • Регулярные выражения для имени skype в PHP
  • PHP json_encode возвращает значение null из символа Unicode
  • Заменить строку в текстовом файле с помощью PHP
  • Примечание: Неизвестно: Пропуск цифровой клавиши 1 в Unknown в строке 0
  • Apple Push Notification Service с PHP Script
  • Как подсчитать, сколько врачей забронировано каждым пациентом?
  • Анонимная функция в массиве
  • Стратегия для разработки версий с именами и без имен с одним и тем же PHP-кодом
  • Получить имя файла, содержащего скрипт PHP
  • Какой файл PHP Ini использует моя веб-страница WAMP?
  • PHP добавление пользовательского пространства имен с помощью автозагрузчика от композитора
  • html2canvas и jsPDF: отправить сгенерированный PDF-файл в виде вложения электронной почты
  • MVC: Model View Controller – просматривает ли View модель?
Читайте также:  Анаконда или сетчатый питон длиннее

Источник

как получить последний символ строки в PHP?

Мне нужно получить последний символ строки. Скажем, у меня есть «тестеры» в качестве входной строки, и я хочу, чтобы результат был «s». как я могу это сделать в PHP?

substr("testers", -1); // returns "s" 

Или прямым доступом к строке :

Обратите внимание, что это не работает для многобайтовых строк. Если вам нужно работать с многобайтовой строкой, рассмотрите использование семейства функций mb_* .

В предыдущем и следующем PHP 7.1 вы сможете это сделать ( Accepted rfc для отрицательных смещений строк ):

; echo $silly[-3]; echo $silly[-15]; echo $silly[-13]; echo $silly[-1]; echo $silly[-4]; echo $silly; echo $silly[-4]; echo $silly[-8]; echo $silly; die(); 

Я дам вам угадать результат.

Кроме того, я добавил это к коду производительности xenonite с этими результатами:

substr () занял 7.0334868431091сек.

доступ к массиву занял 2,3111131191254 секунд

Прямой доступ к строке занял 1.7971360683441сек.

Я не могу оставлять комментарии, но в отношении ответа FastTrack также помните, что окончание строки может быть только одиночным символом. Я бы предложил

EDIT: Мой код ниже был отредактирован кем-то, поэтому он не делает то, что я указал. Я восстановил исходный код и изменил формулировку, чтобы сделать ее более понятной.

trim (или rtrim ) удалит все пробелы, поэтому, если вам нужно проверить пробел, вкладку или другие пробелы, сначала замените различные окончания строк:

$order = array("\r\n", "\n", "\r"); $string = str_replace($order, '', $string); $lastchar = substr($string, -1); 

Я бы посоветовал пойти на решение Гордона, поскольку он более эффективен, чем substr ():

 ---------------------------------- 10000000 repetitions. ---------------------------------- substr() took 2.0285921096802seconds array access took 1.7474739551544seconds 

Помните, что если у вас есть строка, которая была прочитана как строка из текстового файла с использованием функции fgets() , вам нужно использовать substr($string, -3, 1) чтобы вы получили фактический символ, а не часть CRLF (возврат линии подачи).

Я не думаю, что человек, который задал вопрос, нуждался в этом, но для меня у меня возникли проблемы с получением последнего символа из строки из текстового файла, поэтому я уверен, что другие столкнутся с подобными проблемами.

Вы можете найти последний символ, используя php, много способов, таких как substr () и mb_substr () .

Если вы используете многобайтовые кодировки символов, такие как UTF-8, используйте mb_substr вместо substr

Здесь я могу показать вам оба примера:

Строка на разных языках, включая C sharp и PHP, также считается массивом символов.

Зная, что в теории операции массива должны быть быстрее строковых, которые вы могли бы сделать,

$foo = "bar"; $lastChar = strlen($foo) -1; echo $foo[$lastChar]; $firstChar = 0; echo $foo[$firstChar]; 

Однако стандартные функции массива, такие как

не будет работать с строкой.

Siemano, получите только файлы php из выбранного каталога:

$dir = '/home/zetdoa/ftp/domeny/MY_DOMAIN/projekty/project'; $files = scandir($dir, 1); foreach($files as $file)< $n = substr($file, -3); if($n == 'php')< echo $file.'
'; > >

Источник

Как удалить последний символ из файла?

miraage

Mikhail Osher: ну это для меня не очень удобно. я еле разобрал, что код, а что нет. сначала я вообще решил, что вы мне исходник расширения на каком-то странном языке даёте.

miraage

woonem

Mikhail Osher: я уже понял. В примере я просто перезаписываю файл, обработав его содержимое как строку

woonem

miraage

miraage

Вадим Егоров: Windows offers a text-mode translation flag (‘t’) which will transparently translate \n to \r\n when working with the file. In contrast, you can also use ‘b’ to force binary mode, which will not translate your data. To use these flags, specify either ‘b’ or ‘t’ as the last character of the mode parameter.

woonem

Mikhail Osher: да как-раз уже нашел.
>вы также можете использовать ‘b’, чтобы принудительно включить бинарный режим
Просто когда читал, не понял, что t или b надо в mode писать.

И почему у всех тяга к англ. документации.

woonem

Mikhail Osher: хотя там написано
>Чтобы использовать эти режимы, укажите ‘b’ или ‘t’ последней буквой параметра mode.

Источник

PHP – удалить последний символ файла

У меня есть небольшой скрипт php, который удаляет последний символ файла.

$contents = file_get_contents($path); rtrim($contents); $contents = substr($contents, 0, -1); $fh = fopen($path, 'w') or die("can't open file"); fwrite($fh, $contents); fclose($fh); 

Таким образом, он считывает содержимое файла, удаляет последний символ, а затем обрезает файл и записывает в него строку. Все это прекрасно работает.

Мое беспокойство состоит в том, что этот файл может содержать много данных, а вызов file_get_contents () будет содержать все эти данные в памяти, что потенциально может привести к максимальному удалению памяти моих серверов.

Есть ли более эффективный способ удалить последний символ из файла?

Solutions Collecting From Web of «PHP – удалить последний символ файла»

$fh = fopen($path, 'r+') or die("can't open file"); $stat = fstat($fh); ftruncate($fh, $stat['size']-1); fclose($fh); 

Для получения дополнительной помощи см. Это

  • Найти все hrefs на странице и заменить ссылку, поддерживающую предыдущую ссылку – PHP
  • laravel 4 постоянных данных – jquery ajax submit
  • Регулярные выражения для имени skype в PHP
  • PHP json_encode возвращает значение null из символа Unicode
  • Заменить строку в текстовом файле с помощью PHP
  • Примечание: Неизвестно: Пропуск цифровой клавиши 1 в Unknown в строке 0
  • Apple Push Notification Service с PHP Script
  • Как подсчитать, сколько врачей забронировано каждым пациентом?
  • Анонимная функция в массиве
  • Стратегия для разработки версий с именами и без имен с одним и тем же PHP-кодом
  • Получить имя файла, содержащего скрипт PHP
  • Какой файл PHP Ini использует моя веб-страница WAMP?
  • PHP добавление пользовательского пространства имен с помощью автозагрузчика от композитора
  • html2canvas и jsPDF: отправить сгенерированный PDF-файл в виде вложения электронной почты
  • MVC: Model View Controller – просматривает ли View модель?

Источник

Как удалить последний символ в файле?

Дело вот в чем, у меня постоянно идет запись в файл, и в конце каждой строчки ставится закрывающая скобка!

В ручную при каждой новой записи удалять напряжно!

Я предполагаю, что примерно алгоритм должен быть следующим:

Если последний символ в строке равен >
Мы его удаляем

Потом добавляется новая запись!

Пожалуйста, помогите решить данную задачу, а то уже запарился.

Как удалить из строки последний символ?
Господа, не могу врубиться как удалить из строки последний символ? Я читал мануал, но так и.

Как найти последний символ в текстовом файле
Как в коммандной строке найти последний символ в текстовом документе и перейдя от этого символа на.

Как удалить последний символ из строки?
Здравствуйте, мне нужно удалить последний символ из char* сама строка получается здесь из формы.

Как удалить последний символ из файла?
Вот часть кода fileSaveName = Application.GetSaveAsFilename("Zadanie", _ fileFilter:="Text.

Можно при очередной записи вначале прочитать файл, проверить, сохранить заного и после этого записывать новую строку.

$s=file_get_contents('file.txt'); if(substr($s,-1,1)=='>') { file_put_contents('file.txt',substr($s,0,-1)); } /* И теперь добавляем строку */ $f=fopen('file.txt','a'). 

да действительно много действий, иначе я так полагаю не получится? Нет ли такого например способа чтобы заместо > вставлялась новая строчка ? Может вопрос глуповат, но я ищу дополнительные способы, чтобы позже выбрать подходящий!

Источник

Оцените статью