Intereting Posts
Добавить пользовательские поля в существующую форму на Dokan (wordpress / woocoomerce) Получить конкретную информацию об устройстве WordPress – список тегов в файлах шаблонов Лучший способ реализовать динамические меню / заголовки / нижний колонтитул с помощью codeignitor Изменение размера изображения после загрузки preg_match_all – регулярное выражение для поиска полных URL-адресов в строке Выход PHPUnit, вызывающий исключения Zend_Session Какая функция gc_collect_cycles полезна? Есть ли способ отправить параметры в функцию обратного вызова, не создавая сначала мою собственную функцию? как расширить модуль авторизации пользователя kohana Как сделать динамический адрес действия формы в codeigniter? Как отключить кеширование в браузерах? настройка формы как функция во внешнем php-файле Можно ли удалить ActionScript из SWF-файла с помощью PHP? phpDoc @var для составного оператора отображается неправильно

Функция rtrim не работает с завершением h letter

$file = "refinish.php"; $folder = rtrim($file, ".php"); echo $folder; // refinis 

где заканчивается h ?

Я пробовал с некоторыми другими буквами – все в порядке.

rtrim() не удаляет строку, rtrim() во втором аргументе, но все символы этой строки. В вашем случае это включает «h».

Здесь вам нужно просто str_replace() :

 $folder = str_replace('.php', '', $file); 

Изменить : если вы хотите убедиться, что он разделяет часть «.php» только с конца $file , вы можете пойти с предложением @ preg_replace() ниже и использовать preg_replace() вместо:

 $folder = preg_replace('/\.php$/', '', $file); 

Второй аргумент rtrim – это не подстрока для удаления, а набор символов – также может быть диапазоном. Вы можете использовать preg_replace если хотите, чтобы только конечный .php был удален. например,

 preg_replace("/\.php$/", "", "refinish.php") 
 $file = "refinish.php"; $folder = str_replace('.','',rtrim($file, "php")); echo $folder; // refinis 

Попробуйте код

 $filename = "refinish.php"; $extension_pos = strrpos($filename , '.'); $file = substr($filename, 0, $extension_pos) ; $folder = str_replace('.','',rtrim( $file , "php")); echo $folder.substr($filename, $extension_pos); 

его рабочий штраф. его выход – refinis.php

Как работает rtrim ()

 $file = "finish.php"; $folder = rtrim($file, ".php"); 

обрабатывается через символы в $ file от последнего символа назад, как

 $file = "finish.php"; // ^ // Is there a `p` in the list of characters to trim $folder = rtrim($file, ".php"); // ^ // Yes there is, so remove the `p` from the `$file` string $file = "finish.ph"; // ^ // Is there a `h` in the list of characters to trim $folder = rtrim($file, ".php"); // ^ // Yes there is, so remove the `h` from the `$file` string $file = "finish.p"; // ^ // Is there a `p` in the list of characters to trim $folder = rtrim($file, ".php"); // ^ // Yes there is, so remove the `p` from the `$file` string $file = "finish."; // ^ // Is there a `.` in the list of characters to trim $folder = rtrim($file, ".php"); // ^ // Yes there is, so remove the `.` from the `$file` string $file = "finish"; // ^ // Is there a `h` in the list of characters to trim $folder = rtrim($file, ".php"); // ^ // Yes there is, so remove the `h` from the `$file` string $file = "finis"; // ^ // Is there a `s` in the list of characters to trim $folder = rtrim($file, ".php"); // ???? // No there isn't, so terminate the checks and return the current value of `$file` $file = "finis";