Javascript.RU

PHP-функция: file_get_contents

Javascript:

function file_get_contents( url ) {	// Reads entire file into a string
	// 
	// +   original by: Legaev Andrey
	// %		note 1: This function uses XmlHttpRequest and cannot retrieve resource from different domain.

	var req = null;
	try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {
		try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {
			try { req = new XMLHttpRequest(); } catch(e) {}
		}
	}
	if (req == null) throw new Error('XMLHttpRequest not supported');

	req.open("GET", url, false);
	req.send(null);

	return req.responseText;
}

Примеры:

file_get_contents('http://kevin.vanzonneveld.net/pj_test_supportfile_1.htm');
'123'


Автор: Max123 (не зарегистрирован), дата: 15 января, 2009 - 23:51
#permalink

Оригинально =))) аналог пхпвской =)


Автор: B@rmaley.e><e (не зарегистрирован), дата: 31 мая, 2009 - 12:47
#permalink

Плохой аналог. Можно подгружать только файлы со своего домена.


Автор: 4erk, дата: 16 мая, 2010 - 17:48
#permalink

Да норм. Нам большего и не нужно)


Автор: peter911 (не зарегистрирован), дата: 19 сентября, 2010 - 19:48
#permalink

Гениально! Автору скрипта спасибо! Кстати кто автор?


Автор: -ExotiC- (не зарегистрирован), дата: 29 ноября, 2010 - 17:35
#permalink

Дайте пожалуйста не аналог, а саму php плиз, очень нада


Автор: B@rmaley.e><e, дата: 29 ноября, 2010 - 18:22
#permalink

Эм, в php она встроена.


Автор: mav1, дата: 3 декабря, 2010 - 13:34
#permalink

эх...а как бы сделать аналог, чтобы можно было подгружать не со своего,а с чужого сервера...


Автор: B@rmaley.e><e, дата: 3 декабря, 2010 - 16:28
#permalink

JSON можно. Все остальное - нельзя.


Автор: fresh-max (не зарегистрирован), дата: 28 февраля, 2011 - 10:57
#permalink

Хоть и поздно, но может кому-то пригодится.

Можно сделать еще так:
Создать, например, файл getContent.php в корне сайта с таким содержимым:

$path = trim( $_GET['path']);
$file = $path;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,10);//ждем 10 сек до соединения
$fileget = curl_exec($ch);
curl_close($ch);

echo $fileget;

а там, где нужно использовать js-ую file_get_contents, вызывать ее так:

file_get_contents('http://вашсайт/getContent.php?path='.urlencode(http://нужный URL));

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


Автор: Гость (не зарегистрирован), дата: 15 марта, 2016 - 20:54
#permalink

fresh-max, большое спасибо за эту мысль и наводку!


Автор: Mihail.Artushenko (не зарегистрирован), дата: 6 октября, 2011 - 20:52
#permalink

Подскажите в чем проблема в Chrome на req.send(null) выдается ошибка "NETWORK_ERR: XMLHttpRequest Exception 101"


Автор: Гость (не зарегистрирован), дата: 6 октября, 2012 - 20:15
#permalink

а как использовать


Автор: Гость (не зарегистрирован), дата: 10 марта, 2013 - 09:14
#permalink

А этот аналог сработает в приложении для андроид?


Автор: Воган (не зарегистрирован), дата: 13 мая, 2013 - 23:02
#permalink

очень классный код. сразу заработал. спасибо автору!


Автор: faa27, дата: 11 августа, 2015 - 15:25
#permalink

А можно вместо:

req.open("GET", url, false);

использовать?:

req.open("POST", url, false);

Автор: Гость (не зарегистрирован), дата: 9 сентября, 2015 - 08:04
#permalink

Всё бы хорошо, но работает только в эксплорере, а как на счёт хрома, или FF?


Автор: ИВАНЯ (не зарегистрирован), дата: 29 апреля, 2017 - 11:32
#permalink

Hello, Спасибо


 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние темы на форуме
Forum