$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";