РНР: способы получить содержимое файла
1. Заметил, что многие делают так:
<?То есть по сути, file() во второй строке возвращает содержимое файла в виде массива его строк, а всё остальное требуется для перегона этого массива в одну длинную строку. Способ, на мой взгляд, не самый элегантный (хотя что-то подобное в комментах на php.net рекомендовалось использовать для получения объёма памяти в байтах, требуемого для хранения массива, т.е. буферизовать вывод print_r($massiv) и посчитать длину получившейся строки).
ob_start();
$arrContent = file($_GET['url']);
foreach ($arrContent as $val)
echo $val;
$fullContent = ob_get_contents();
ob_end_clean();
?>
2. Можно продолжать брать содержимое массива через file(), т.к. это довольно быстрый и удобный способ, но перегонять его в строку через implode():
<?3. Самое простое - использовать специальную функцию file_get_contents():
$fullContent = implode("", file($_GET['url']));
?>
<?Правда, в этом случае РНР, кажется, должен открывать ссылки как файлы (см. php.ini). Я это проверяю так:
$fullContent = file_get_contents($_GET['url']);
?>
<?
$can = (function_exists("ini_get") &&
ini_get("allow_url_fopen") ? true : false);
?>
0 комментов:
Отправить комментарий