fopen. вопрос

mobilnikua

Новичок
fopen. вопрос

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

PHP:
//заполняем прайсик
@ $fp = fopen("http://*****************.php", 'r');

while(!feof($fp)){
	$order = fgetcsv($fp, 1000, "|");


include ("../dbopen.php");

if  (isset($order[0])){

mysql_query("INSERT INTO shop_price (shop_name, producer, garantee, model, price, status) VALUES ('magazin', '{$order[0]}', '{$order[1]}', '{$order[2]}', '{$order[3]}', 'есть')");
	
	               }
	          }
fclose ($fp);
Теперь такая проблема. По соображениям безопасности на сервере были запрещены все инклуды по http и скрипт соответственно не работает....подскажите как это обойти. Спасибо
 

mobilnikua

Новичок
PHP:
//заполняем прайсик 
@ $fp = file_get_contents("http://*****************.php", 'r'); 

while(!feof($fp)){ 
    $order = fgetcsv($fp, 1000, "|"); 


include ("../dbopen.php"); 

if  (isset($order[0])){ 

mysql_query("INSERT INTO shop_price (shop_name, producer, garantee, model, price, status) VALUES ('magazin', '{$order[0]}', '{$order[1]}', '{$order[2]}', '{$order[3]}', 'есть')"); 
     
                   } 
              } 
fclose ($fp);
так не работает :((
 

chisto_tolyan

Враг народа
Потому что fopen возвращает ресурс файла, а file_get_contents - содержимое файла в одной строке, если почитать ман на тему fgetcsv - видим, что первый параметр должен быть ресурсом)
 
Если запрещен "allow_url_fopen", то это не значит, что запрещена работа через сокеты. Но придется имитировать работу по http-протоколу. Это несложно.

-~{}~ 11.08.05 10:59:

$fp = fsockopen ('www.php.net', 80, $errno, $errstr, 30);
if (!$fp) echo "$errstr ($errno)<br>\n"; else {
fputs ($fp, "GET /index.htm HTTP/1.0\n");
fputs ($fp, "Host: www.php.net\n");
while (!feof($fp)) {
$line = fgets ($fp,1000);
}
}


Не проверял. Может быть, где-то и описАлся.
 

chisto_tolyan

Враг народа
PHP:
$fp = fsockopen("http://site.ru",80,$errno, $errstr, 30); 
$req  = "GET http://site.ru/script.php HTTP/1.1\r\n";
$req .= "Host: http://site.ru\r\n";
$req .= "Connection: Close\r\n\r\n";
fwrite($fp,$req);

while(!feof($fp)){ 
  $order = fgetcsv($fp, 1000, "|"); 
  include ("../dbopen.php");
     if  (isset($order[0])){
      mysql_query("INSERT INTO shop_price (shop_name, producer, garantee, model, price, status) VALUES ('magazin', '{$order[0]}', '{$order[1]}', '{$order[2]}', '{$order[3]}', 'есть')");       
    } 
} 
fclose ($fp);
 

BuTbKa

Новичок
$fp = fsockopen("http://site.ru",80,$errno, $errstr, 30);
$req = "GET $PATH HTTP/1.1\r\n";
$req .= "Host: http://site.ru\r\n";
$req .= "Connection: Close\r\n\r\n";
fwrite($fp,$req);

while(!feof($fp)){
$order = fgetcsv($fp, 1000, "|");
include ("../dbopen.php");
if (isset($order[0])){
mysql_query("INSERT INTO shop_price (shop_name, producer, garantee, model, price, status) VALUES ('magazin', '{$order[0]}', '{$order[1]}', '{$order[2]}', '{$order[3]}', 'есть')");
}
}
fclose ($fp);

Где $HOST - хост ('http://www.site.ru')
$PATH - путь к файлу ('/script.php')
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', 1);
 
Сверху