Basename server php self

Php echo basename server php self

i am using .htaccess file that takes the file name and it will take off the .php extension so my url looks like this: http://example.com/contact instead of http://example.com/contact.php. when i remove the .php from the form action it refreshes the page but a SERVER[‘post’] is not recorded.. what am i doing wrong?? php code to record if a post request was sent form htaccess Solution 1: this was also a problem echo ‘/’ No need for that in there Solution 2: You can use this in your .htaccess file: Solution 3: Define a variable from PHP_SELF then use basename for cutting off the file extension.

Lt;?echo basename($_SERVER[‘PHP_SELF’],’.php’)?> does not work in WAMP

The following works fine on the Mac under MAMP and on my real domain but fails when running under WAMP:

Maybe you have turned off short tags.

If it’s still not defined you can use:

Читайте также:  Html edit file in browser

In case your current file is the current script.

PHP_SELF returning ‘s’ string on localhost, As you have mentioned in your last comment, you used the PHP_SELF in the header.php file so the which is calling PHP_SELF, it returns that

PHP Form submit with $_SERVER[«PHP_SELF»] but removing the .php from the url

I am working on a php form that will use $ _SERVER[«PHP_SELF «] to submit to the same page. i am using . htaccess file that takes the file name and it will take off the .php extension so my url looks like this: http://example.com/contact instead of http://example.com/contact.php.

when i remove the .php from the form action it refreshes the page but a SERVER[‘post’] is not recorded..

php code to record if a post request was sent

if($_SERVER['REQUEST_METHOD'] == 'POST')
RewriteEngine On RewriteCond % !-f RewriteRule ^([^/]+)/$ $1.php RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php RewriteCond % !-f RewriteCond % !-d RewriteCond % !(\.[a-zA-Z0-9]|/)$ RewriteRule (.*)$ /$1/ [R=301,L] 

No need for that in there

You can use this in your .htaccess file:

#remove php file extension-e.g. https://example.com/file.php will become https://example.com/file RewriteEngine on RewriteCond % !-d RewriteCond %\.php -f RewriteRule ^(.*)$ $1.php [NC,L] 

Define a variable from PHP_SELF then use basename for cutting off the file extension .

PHP Form submit with $_SERVER[«PHP_SELF»] but removing the, this was also a problem. echo ‘/’. No need for that in there.

Remove / and .php/html from $_SERVER[‘PHP_SELF’]

Well, the title says pretty much all of it, I want to remove the slash and the extenstion from PHP_SELF, is there any possible way of doing this?

echo basename($_SERVER['PHP_SELF'],'.php'); //or replace .php with .html 
echo pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME); 

PHP $_SERVER, $_SERVER is a PHP super global variable which holds information about $_SERVER[‘PHP_SELF’], Returns the filename of the currently executing script.

PHP_SELF returning ‘s’ string on localhost

I am using this code to highlight the active link in navigation, but the code is not working. When I echo $_SERVER[‘PHP_SELF’] this, it gives ‘s’ string as the output on localhost. Please help, what is wrong here?

P.S. Also when I checked apache error.log it is showing:

[Wed Feb 19 18:28:08.671229 2014] [:error] [pid 1353] [client 127.0.0.1:57968] PHP Warning: Illegal string offset 'PHP_SELF' 

As you have mentioned in your last comment, you used the PHP_SELF in the header.php file so the which is calling PHP_SELF, it returns that filename. **** that in your index.php file at the top of every code:

and then use the $filename variable in your header.php file. may be this will help. let me know if this works.

Check if this works for you.

Источник

An Example Code of Php Echoing the Server’s Basename Using Php_Self

Two solutions are available for the given problem. For the first solution, you can choose between two options or ask for further clarification. The second solution involves using a tool that was previously used for a similar task. In the first solution, you can select either the current file or the current folder where the file is located. In the second solution, you can expect a return value of 9 if the URL is ?page_id=9. The third solution recommends using a particular method to insert any variable into HTML, especially if you do not want it to be interpreted as HTML by the browser.

Why use $_SERVER[‘PHP_SELF’] instead of «»

The action will be set to the current URL by default, which is the simplest and most dependable method to indicate that the form should be submitted to its originating location.

It’s unnecessary to utilize $_SERVER[‘PHP_SELF’] , whereas # doesn’t trigger the form submission, except when there is a submit event handler linked to it that manages the submission.

Employing a blank string is completely acceptable and, in fact, considerably more secure than utilizing only $_SERVER[‘PHP_SELF’] .

Avoid using $_SERVER[‘PHP_SELF’] as appending /. after the whatever.php part of the URL can easily inject malicious data. It is recommended to refrain from this method and discontinue following any PHP guide that suggests using it.

To prevent the browser from interpreting a variable as HTML, it is recommended to use htmlspecialchars() when inserting it into HTML. This step helps to prevent hackers from inserting random HTML into your webpage.

The $_SERVER[‘PHP_SELF’] value is obtained from the URL entered in the browser, thus its usage without htmlspecialchars() would permit cyber attackers to manipulate your code’s output directly.

Источник

Использование basename() в PHP 4 мин для чтения

Favorite

Добавить в избранное

Полный список функций файловой системы PHP 5

Ф ункция basename() — это встроенная функция PHP, которая извлекает имя файла по заданному пути. Его можно использовать для печати только имени файла из имени файла или пути к файлу. Эту функцию также можно использовать для печати имени существующего скрипта. Основная цель этой функции — узнать имя файла или имя текущего скрипта для любых целей программирования. В этом руководстве показано, как использовать функцию basename() в PHP.

string basename (string $path [, string $suffix ])

Эта функция может принимать два аргумента. Первый аргумент является обязательным и принимает имя файла или имя файла с путем в виде строкового значения. Второй аргумент является необязательным и используется для получения только имени файла без расширения.

Пример 1: прочитать имя файла из существующего и несуществующего имени файла

В следующем примере показано использование функции basename() без необязательного аргумента.

Создайте файл PHP со следующим скриптом. Здесь функция basename() используется для существующих и несуществующих файлов. Функция Check() определена для проверки, существует ли конкретный файл или нет. Оба hello.txt и world.txt файлы используются в функции базового имени() , чтобы узнать имя файла с расширением.

function Check($ file)
if(file_exists($ file))
echo » $ file существует.
»;
else
echo » $ file не существует.
»;
>

// Устанавливаем существующее имя файла
$ basepath1 = «hello.txt»;

// Использование функции basename() без необязательного параметра
echo «

Имя файла с расширением: » . basename($ basepath1) . «

»;

// Устанавливаем несуществующее имя файла
$ basepath2 = «world.txt»;

// Использование функции basename() без необязательного параметра
echo «

Имя файла с расширением: ».basename($ basepath2) . «

»;

// Использование функции basename() с необязательным параметром
echo «

Имя файла без расширения: ».basename($ basepath1 , «.txt» ) . «

» ;

Следующий вывод появится после запуска вышеуказанного сценария с сервера. Вывод показывает, что файл hello.txt существует в текущем месте, а функция basename() возвращает имя файла. World.txt файл не существует в текущем местоположении, но функция basename() по- прежнему возвращает имя файла для этого файла. Таким образом, функция basename() возвращает имя файла из пути к файлу, независимо от того, существует файл или нет.

Пример 2: прочитать имя файла из пути к файлу

В предыдущем примере в первом аргументе функции basename() передается только имя файла. В этом примере показано использование функции basename() для определения имени файла с расширением и без расширения из пути к файлу. «.php» используется как необязательное значение аргумента функции basename(). Если файл PHP существует в пути к файлу, функция basename() вернет имя файла без расширения пути.

// Задаем путь к файлу
$ filepath = «var/www/html/php/book.php» ;

// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath) . «
»;

// Получить имя файла без расширения
echo «Имя файла без расширения»;
echo basename($ filepath , «.php») . «
» ;

Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Путь, который используется в скрипте, ‘ /var/www/html/php/book.php ‘, содержит файл PHP, а функция basename() возвращает book.php при использовании без необязательного аргумента и возвращает книгу, когда он используется с необязательным аргументом.

Пример 3: чтение имени файла из URL-адреса с запросом

В следующем примере показано, как функцию basename() можно использовать для получения имени файла из URL-адреса, содержащего переменные запроса.

Создайте файл PHP со следующим скриптом. Здесь функция explode() используется для разделения URL-адреса и строки запроса. Эта функция возвращает массив. Первый элемент массива содержит URL-адрес, а второй элемент массива содержит значение строки запроса. Функция basename() используется для определения имени файла из первого элемента массива.

// Задайте URL-адрес с параметром запроса
$ url = «http://localhost/php/customer.php? >

// Получить путь к файлу из URL
$ filepath = explode(«?» , $ Url);

// Получить имя файла с расширением
echo «Имя файла с расширением»;
echo basename($ filepath [ 0 ]) . «
»;

Cледующий вывод появится после запуска вышеуказанного сценария с сервера. Здесь имя файла — customer.php.

Пример 4: Прочтите каталог и каталог после исключения последнего каталога из пути

Функцию basename() также можно использовать для определения имени каталога по пути. Он используется в следующем примере, чтобы узнать имя текущего каталога и имя каталога перед текущим каталогом из пути.

Создайте файл PHP со следующим скриптом. $ _SERVER [ «PHP_SELF»] используются в функции dirname(), чтобы прочитать полный путь к текущему сценарию, а функция basename() используются для чтения имени каталога, содержащее этот скрипт. Когда конкретный путь определен в функции dirname() и во втором аргументе этой функции используется ‘/’, тогда путь будет считывать путь к каталогу, опуская последнее имя каталога. В этом случае функция basename() вернет имя каталога после исключения последнего каталога из пути.

// Прочитать текущий каталог
$ current_dir = basename(dirname($ _SERVER [ ‘PHP_SELF’ ]) , «/»);

// Распечатать текущий каталог
echo «Текущий рабочий каталог: » . $ current_dir . «
»;

// Считываем родительский каталог по пути
$ dir = basename(dirname(‘/ var/ www/ html/ php’) , «/»);

«Предыдущий каталог по заданному пути: » . $ dir . «»;
?>

Cледующий вывод появится после запуска вышеуказанного сценария с сервера.

Пример 5: прочитать текущее имя скрипта

Функцию basename() также можно использовать для чтения имени текущего скрипта. Когда __FILE__ используется в первом аргументе функции basename(), в качестве вывода будет возвращено имя файла сценария.

// Прочитать имя текущего скрипта
echo «Имя текущего скрипта: ».basename(__FILE__).»» ;

Cледующий вывод появится после запуска вышеуказанного сценария с сервера. В выходных данных отображается имя файла исполняемого сценария.

Заключение

Функция basename() — полезная функция PHP, когда кодировщик работает с файлом или каталогом для различных целей. Различные варианты использования функции basename() объясняются в этой статье на простых примерах, чтобы помочь читателям понять ее правильное использование и применить в своих сценариях PHP.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

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