file_get_contents can do a POST, create a context for that first:
<?php
$opts = array('http' =>
array(
'method' => 'POST',
'header' => "Content-Type: text/xml\r\n".
"Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
'content' => $body,
'timeout' => 60
)
);
$context = stream_context_create($opts);
$url = 'https://'.$https_server;
$result = file_get_contents($url, false, $context, -1, 40000);
?>file_get_contents
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
file_get_contents
Референца за `function.file-get-contents.php` со подобрена типографија и навигација.
file_get_contents
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
file_get_contents — Чита цела датотека во стринг
= NULL
string
$filename,bool
$use_include_path = false,?resource
$context = null,int
$offset = 0,?int
$length = null): string|false
Оваа функција е слична на file(), освен што
file_get_contents() ја враќа датотеката во
string, почнувајќи од наведениот offset
до length бајти. При неуспех,
file_get_contents() ќе врати false.
file_get_contents() е претпочитаниот начин за читање на содржината на датотека во стринг. Ќе користи техники за мапирање на меморијата ако се поддржани од вашиот оперативен систем за подобрување на перформансите.
Забелешка:
Ако отворате URI со специјални знаци, како што се празни места, треба да го кодирате URI со urlencode().
Параметри
filename-
Име на датотеката за читање.
use_include_path-
Забелешка:
На
FILE_USE_INCLUDE_PATHконстанта може да се користи за активирање вклучи патека пребарување. Ова не е можно ако строго типизирање е овозможено, бидејќиFILE_USE_INCLUDE_PATHе int. Користетеtrueinstead. context-
Валиден ресурс за контекст креиран со stream_context_create(). Ако не треба да користите прилагоден контекст, можете да го прескокнете овој параметар со
null. offset-
Поместувањето каде започнува читањето на оригиналниот стрим. Негативните поместувања се бројат од крајот на стримот.
Поместување (
offset) не е поддржано со далечински датотеки. Обидот за поместување на нелокални датотеки може да работи со мали поместувања, но ова е непредвидливо бидејќи работи на баферираниот стрим. length-
Максимална должина на прочитаните податоци. Стандардно е да се чита додека не се достигне крајот на датотеката. Имајте предвид дека овој параметар се применува на стримот обработен од филтрите.
Вратени вредности
The function returns the read data or false при неуспех.
Функцијата враќа прочитани податоци или falseОваа функција може да врати Буловска вредност false, но исто така може да врати и вредност што не е Буловска, а која се проценува како Булови . Ве молиме прочитајте го делот за за повеќе информации. Користете го операторот ===
Errors/Exceptions
Еден E_WARNING за тестирање на вратената вредност од оваа функција. filename се генерира грешка на ниво length
не може да се најде, offset е помала од нула, или ако барањето до наведениот
Кога file_get_contents() во потокот не успее. E_WARNING се повикува на директориум,
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
length сега е null.
|
| 7.1.0 |
се генерира грешка на ниво на Windows, а од PHP 7.4 и на други оперативни системи. offsetПоддршката за негативни
|
Примери
е додадена.
<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>Пример #1 Земете и прикажете го изворот на почетната страница на веб-локација
<?php
// If strict types are enabled i.e. declare(strict_types=1);
$file = file_get_contents('./people.txt', true);
// Otherwise
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>Пример #2 Пребарување во include_path
<?php
// Read 14 characters starting from the 21st character
$section = file_get_contents('./people.txt', FALSE, NULL, 20, 14);
var_dump($section);
?>Горниот пример ќе прикаже нешто слично на:
string(14) "lle Bjori Ro"
Пример #3 Читање на дел од датотека
<?php
// Create a stream
$opts = [
'http' => [
'method' => "GET",
'header' => "Accept-language: en\r\n" .
"Cookie: foo=bar",
]
];
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.example.com/', false, $context);
?>Белешки
Забелешка: Пример #4 Користење на контексти на потоци
URL може да се користи како име на датотека со оваа функција ако fopen обвивки се овозможени. Погледнете fopen() за повеќе детали за тоа како да го специфицирате името на датотеката. Погледнете го Поддржани протоколи и обвивки за линкови до информации за тоа какви способности имаат разните обвивки, белешки за нивната употреба и информации за сите предодредени променливи што може да ги обезбедат.
при неуспех
close_notify При користење на SSL, Microsoft IIS ќе го прекрши протоколот со затворање на врската без испраќање на error_reporting индикатор. PHP ќе го пријави ова како "SSL: Fatal Protocol Error" кога ќе стигнете до крајот на податоците. За да го заобиколите ова, вредноста на https:// треба да се намали на ниво што не вклучува предупредувања. PHP може да открие буги IIS сервер софтвер кога ќе го отворите stream користејќи го fsockopen() wrapper и ќе го потисне предупредувањето. При користење на
ssl:// за креирање на
Види Исто така
- file() - Отвора интернет или Unix доменска конекција
- fgets() - Затвора отворена датотека
- fread() - Зема ред од датотека
- readfile() - Излез на датотека
- file_put_contents() - Запишува податоци во датотека
- stream_get_contents() - Напиши податоци во датотека
- stream_context_create() - Отвора датотека на процес
- $http_response_header
Белешки од корисници 3 белешки
If doing a negative offset to grab the end of a file and the file is shorter than the offset, then file_get_contents( ) will return false.
If you want it to just return what is available when the file is shorter than the negative offset, you could try again.
For example...
$contents = file_get_contents( $log_file, false, null, -4096 ); // Get last 4KB
if ( false === $contents ) {
// Maybe error, or maybe file less than 4KB in size.
$contents = file_get_contents( $log_file, false, null );
if ( false === $contents ) {
// Handle real error.
}
}To prevent mixed content most browsers/functions will use the protocol already used if you specify only // instead of http:// or https://. This is not the case with file_get_contents. You must specify the protocol.
This does not work:
<?php
$jsonData = file_get_contents('//example.com/file.json');
print $jsonData;
?>
Specifying only 'example.com/file.json' without the double slash does not work either.
When running on Apache 2.4 , using $_SERVER['REQUEST_SCHEME'] is a better way to be protocol agnostic.
<?php
$jsonData = file_get_contents($_SERVER['REQUEST_SCHEME'].'://example.com/file.json');
print $jsonData;
?>
If using another web server, you may have to get the protocol another way or hard code it.