Open url in php function

URL Functions

Note that $_SERVER[«HTTP_REFERER»] may not include GET data that was included in the referring address, depending on the browser. So if you rely on GET variables to generate a page, it’s not a good idea to use HTTP_REFERER to smoothly «bounce» someone back to the page he/she came from.

just a side note to the above you will need to add the ?

Note also that the URL shown in $HTTP_REFERER is not always the URL of the web page where the user clicked to invoke the PHP script.
This may instead be a document of your own web site, which contains an HTML element whose one attribute references the script. Note also that the current page fragment (#anchor) may be transmitted or not with the URL, depending on the browser.
Examples:

In such case, browsers should transmit the URL of the container document, but some still persist in using the previous document in the browser history, and this could cause a different $HTTP_REFERER value be sent when the user comes back to the document referencing your script. If you wanna be sure that the actual current document or previous document in the history is sent, use client-side JavaScript to send it to your script:

And then check the value of $js in your page script to generate appropriate content when the remote user agent does not support client-side scripts (such as most index/scan robots, some old or special simplified browsers, or browsers with JavaScript disabled by their users).

Читайте также:  Javascript div onclick this

Following method do not show the URL in user browser (as the author claimed) if the code resides in the source page of FRAME or IFRAME (say SRC=»sourcepage.php») . In that case the URL of the SOURCE page is displayed.

$url = sprintf(«%s%s%s»,»http://»,$HTTP_HOST,$REQUEST_URI);
echo «$url»;

To check if a URL is valid, try to fopen() it. If fopen() results an error (returns false), then PHP cannot open the URL you asked. This is usually because it is not valid.

When using a multiple select on a form, I ran into a little issue of only receiving the last value form the select box.
I had a select box named organization_id with two values (92 and 93).
To get the values of both, I had to use the following:

$temp_array = split(«&», $_SERVER[‘QUERY_STRING’]);
foreach($temp_array as $key=>$value) if(substr($value, 0, 15) == «organization_id») $_GET[‘organizations’][] = substr($value, 15, strlen($value));
>
>

this results in a $_GET array like this :

(
[page] => idea_submission
[organization_id] => 93
[organizations] => Array
(
[0] => =92
[1] => =93
)

Источник

fopen

fopen() закрепляет именованный ресурс, указанный в аргументе filename , за потоком.

Список параметров

Если filename передан в форме «scheme://. «, он считается URL’ом и PHP проведёт поиск обработчика протокола (также известного как «обертка») для этой схемы. Если ни одна обёртка не закреплена за протоколом, PHP выдаст замечание, чтобы помочь вам отследить потенциальную проблему в вашем скрипте и затем продолжит выполнение, как если бы filename указывал на обыкновенный файл.

Если PHP установлено, что filename указывает на локальный файл, тогда выполняется попытка открыть поток к этому файлу. Файл должен быть доступен PHP, так что вам следует убедиться, что права доступа на файл это разрешают. Если вы включили безопасный режим или open_basedir, то накладываются дальнейшие ограничения.

Если PHP установлено, что filename указывает на зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL, PHP выполняет проверку состояния директивы allow_url_fopen. Если она выключена, PHP выдаст предупреждение и вызов fopen закончится неудачей.

Замечание:

Список поддерживаемых протоколов доступен в разделе Поддерживаемые протоколы и обработчики (wrappers). Некоторые протоколы (обертки) поддерживают контекст и/или опции php.ini . Обратитесь к соответствующей странице с описанием используемого протокола для получения списка опций, которые могут быть установлены. (например, значение php.ini user_agent используется оберткой http).

На платформе Windows, необходимо экранировать все обратные слеши в пути к файлу или использовать прямые слеши.

Параметр mode указывает тип доступа, который вы запрашиваете у потока. Он может быть одним из следующих вариантов:

Список возможных режимов для fopen() используя mode
mode Описание
‘r’ Открывает файл только для чтения; помещает указатель в начало файла.
‘r+’ Открывает файл для чтения и записи; помещает указатель в начало файла.
‘w’ Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пробует его создать.
‘w+’ Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует — пытается его создать.
‘a’ Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует — пытается его создать.
‘a+’ Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует — пытается его создать.
‘x’ Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст ошибку уровня E_WARNING . Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2).
‘x+’ Создаёт и открывает для чтения и записи; иначе имеет то же поведение что и‘x’.
‘c’ Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличии от ‘w’), и вызов к этой функции не вызывает ошибку (также как и в случае с ‘x’). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (смотри flock() ) перед изменением, так как использование ‘w’ может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
‘c+’ Открывает файл для чтения и записи; иначе имеет то же поведение, что и ‘c’.

Замечание:

Разные семейства операционных систем имеют разные соглашения относительно окончания строк. Когда вы пишете текст и хотите вставить разрыв строки, вы должны использовать правильные символы (или символ) для вашей операционной системы. Системы семейства Unix используют \n в качестве символа конца строки, системы семейства Windows используют \r\n в качестве символов окончания строки и системы семейства Macintosh используют \r в качестве символа конца строки.

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

Windows предлагает флаг режима текстовой трансляции (‘t’), который автоматически переведёт \n в \r\n во время работы с файлом. И наоборот — вы также можете использовать ‘b’, чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите ‘b’ или ‘t’ последней буквой параметра mode .

Так как установка флага трансляции по умолчанию зависит от SAPI и используемой версии PHP, рекомендуем явно задавать указанный флаг из соображений портируемости. Вы должны использовать режим ‘t’, если вы работаете с текстовым файлом и использовать \n для обозначения конца строки в вашем скрипте, при этом не беспокоясь за читаемость ваших файлов в других приложениях типа «Блокнота». Во всех остальных случаях используйте флаг ‘b’.

Если вы явно не укажете флаг ‘b’ во время работы с бинарными файлами, вы можете столкнуться со странной порчей ваших данных, включая испорченные файлы изображений и странные проблемы с символами \r\n.

Замечание:

Из соображений портируемости, настоятельно рекомендуется всегда использовать флаг ‘b’ при открытии файлов с помощью fopen() .

Замечание:

Кроме того, из соображений портируемости, также настойчиво рекомендуется переписать старый код, который полагается на режим ‘t’, чтобы вместо этого он использовал правильные концы строк и режим ‘b’.

Необязательный третий параметр use_include_path может быть установлен в ‘1’ или TRUE , если вы также хотите провести поиск файла в include_path.

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает указатель на файл в случае успешной работы, или FALSE в случае ошибки.

Ошибки

Если открыть файл не удалось, будет сгенерирована ошибка уровня E_WARNING . Вы можете использовать оператор @ для подавления этой ошибки.

Список изменений

Версия Описание
5.2.6 Добавлены опции ‘c’ и ‘c+’
4.3.2 С версии PHP 4.3.2, по умолчанию устанавливается бинарный режим для всех платформ, различающих бинарный и текстовый режимы. Если у вас появились проблемы после обновления, попытайтесь использовать в качестве обхода проблемы флаг ‘t’, пока вы не сделаете ваш скрипт более портируемым, как это было указано выше.

Примеры

Пример #1 Примеры использования fopen()

$handle = fopen ( «/home/rasmus/file.txt» , «r» );
$handle = fopen ( «/home/rasmus/file.gif» , «wb» );
$handle = fopen ( «http://www.example.com/» , «r» );
$handle = fopen ( «ftp://user:password@example.com/somefile.txt» , «w» );
?>

Примечания

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как «SSL: Fatal Protocol Error» в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP версий 4.3.7 и старше умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

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

Замечание:

Эта функция также может выполниться успешно, в случае если filename является директорией. Если вы не уверены является ли filename файлом или директорией, то вам необходимо воспользоваться функцией is_dir() , до вызова fopen() .

Смотрите также

  • Поддерживаемые протоколы и обработчики (wrappers)
  • fclose() — Закрывает открытый дескриптор файла
  • fgets() — Читает строку из файла
  • fread() — Бинарно-безопасное чтение файла
  • fwrite() — Бинарно-безопасная запись в файл
  • fsockopen() — Открывает соединение с интернет сокетом или доменным сокетом Unix
  • file() — Читает содержимое файла и помещает его в массив
  • file_exists() — Проверяет наличие указанного файла или каталога
  • is_readable() — Определяет существование файла и доступен ли он для чтения
  • stream_set_timeout() — Устанавливает значение тайм-аута на потоке
  • popen() — Открывает файловый указатель процесса
  • stream_context_create() — Создаёт контекст потока
  • umask() — Изменяет текущую umask
  • SplFileObject

Источник

How to Open an External URL in PHP

To open an external URL in PHP, we will use cURL which is a PHP library, a cURL is also a command-line.

To open an external URL in PHP, we will use cURL which is a PHP library, a cURL is also a command-line tool that is used to send files and download data over HTTP and FTP.

Check live view below.

How to open an external URL in PHP

We will take 2 steps to do this.

  • Create an HTML form with only a button with a name attribute.
  • Create a PHP cURL function that is used to open an external URL.

Create HTML Form

This form is only used for clicking the button to open an external URL.

Create PHP Script to Open External URL

Code Explanations:

  • $ch = curl_init();
    • Create a new cURL resource
    • Set the file URL to fetch through cURL
    • Do not check the SSL certificates
    • Return the actual result of the curl result instead of the success code

    At the last, we call the function on the time of button click.

    To know more about the PHP cURL library you check here: https://www.php.net/manual/en/book.curl.php

    Here is the live view of the complete source code to How we open the external URL.

    Written by Bikash

    My name is Bikash Kr. Panda. I own and operate PHPCODER.TECH. I am a web Programmer by profession and working on more than 50 projects to date. Currently I am working on the web-based project and all the CMS and frameworks which are based on PHP. Profile

    Источник

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