Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP:Открыть файл

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вышла ошибка Cannot redeclare uSiteGet() (previously declared

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 01:52 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
вышла ошибка Cannot redeclare uSiteGet() (previously declared

потому что вы 2 раза в коде пытаетесь объявить одну и ту же функцию. старое описание функции зачем оставили??

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:54 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
какое старое? я заменил на все что вы дали

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 01:59 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
какое старое? я заменил на все что вы дали

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

Цитата:
previously declared

файл и строка. если функция в вашем коде уже есть с таким именем, то назовите новую иначе, ее и используйте, с новым именем.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:03 27-10-2013 | Исправлено: Cheery, 02:03 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как изменю return $result; на echo $result;  
скрипт работает

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 02:03 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
как изменю return $result; на echo $result;  

это на данную ошибку не влияет.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:05 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вроде не где не используется функция дважды,но скрипт так и не работает
curl сделал так

Код:
 
function uSiteGet($torrent) {  
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $torrent);  
    curl_setopt($ch, CURLOPT_HEADER, 0);  
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');  
    curl_setopt($ch, CURLOPT_NOBODY, 0);  
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 0);  
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);  
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
    return curl_exec($ch);  
    }
$fn = uSiteGet($_GET['torrent']);  
 

 
вывод в браузер
    print(benc($dict));
header("Content-Disposition: attachment; filename=\"local_".$url."; charset=windows-1251\"");  
header ("Content-Type: application/x-bittorrent");
почему не работает?

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 02:11 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
    print(benc($dict));  
header("Content-Disposition: attachment; filename=\"local_".$url."; charset=windows-1251\"");
header ("Content-Type: application/x-bittorrent");  

а вы подумайте, очевидно же.
написал же уже - заголовки должны быть выданы ДО вывода чего либо в браузер.
 
как же сложно с теми, кто даже не пытается думать над тем, что пишет.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:15 27-10-2013 | Исправлено: Cheery, 02:16 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
но оно же в самом низу, даже ниже редактора  
 
Добавлено:
Cheery
у меня просто есть похожий скрипт. он работает также,а тут почему не так

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 02:17 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
но оно же в самом низу, даже ниже редактора

и что?? редактор не выдает в браузер ничего.
как только делаете print, то сразу выдаете текст (или иное) в браузер, а значит поздно уже выдавать заголовки
читать http://www.phpfaq.ru/headers

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:18 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
теперь я понял что заголовки отправляется первыми.Моего опыта не хватает, и сделать я тут не знаю как.Все это я узнал только сегодня.
Cheery
прошу вас, помогите.Я запарился с этим скриптом.Вроде проблемы не большие а трудов уходит на целый день(лично для меня)

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 02:43 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578
 

Код:
function uSiteGet($torrent) {    
    $ch = curl_init();    
    curl_setopt($ch, CURLOPT_URL, $torrent);    
    curl_setopt($ch, CURLOPT_HEADER, 0);    
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');    
    curl_setopt($ch, CURLOPT_NOBODY, 0);    
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 0);    
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);    
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);    
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    
    return curl_exec($ch);  
}  
 
$fn = uSiteGet($_GET['torrent']);    
require_once "benc.php";  
$dict = bdec_file($fn, (1024*1024));  
header("Content-Disposition: attachment; filename=\"local_".$url."; charset=windows-1251\"");  
header ("Content-Type: application/x-bittorrent");  
echo $dict;
 

 
неужели так сложно?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:46 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не пойму что за лажа.Файл я получил но теперь он имеет 0 байтов, хотя должно быть около 20
 
bdec_file открываю через  

Код:
 
function bdec_file($f, $ms) {
$fp = fopen($f, "rb");
if (!$fp)
return;
$e = fread($fp, $ms);
fclose($fp);
return bdec($e);
}
 

почему файл 0 байтов?

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 02:56 27-10-2013 | Исправлено: maxus5578, 02:58 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
почему файл 0 байтов?

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:08 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
а если к $f тоже привязать $_GET, будет работать?
Если нет то как решить эту проблему?

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 03:11 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
а если к $f тоже привязать $_GET, будет работать?

зачем?? вы уже скачали файл, зачем вам заново что то делать?
 

Цитата:
Если нет то как решить эту проблему?

убрать ее (функцию), заменить  
 

Цитата:
$dict = bdec_file($fn, (1024*1024));  

на  

Код:
$dict = bdec($fn);  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:14 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по любому файл кодируется не правильно.
Походу тут безвыходный вариант.Может можно сделать чтоб файл сохранять на сервер, и после брать его через нашу форму которая берет только с диска, ну и после выполнения всего скрипта поставить unlink

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 03:26 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
Может можно сделать чтоб файл сохранять на сервер,

www.php.net/file_put_contents
 

Цитата:
 после брать его через нашу форму которая берет только с диска

не имеет смысла
 

Цитата:
bdec_file

делает то же самое, всего лишь читает файл с диска.
 
я не знаю, что ваша функция bdec должна делать.. и что вы получаете с удаленного сервера.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:30 27-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не знаю если вы что то поймете, но bdec вот что делает

Код:
 
function bdec($s) {
if (preg_match('/^(\d+):/', $s, $m)) {
$l = $m[1];
$pl = strlen($l) + 1;
$v = substr($s, $pl, $l);
$ss = substr($s, 0, $pl + $l);
if (strlen($v) != $l)
return;
return array('type' => "string", 'value' => $v, 'strlen' => strlen($ss), 'string' => $ss);
}
if (preg_match('/^i(\d+)e/', $s, $m)) {
$v = $m[1];
$ss = "i" . $v . "e";
if ($v === "-0")
return;
if ($v[0] == "0" && strlen($v) != 1)
return;
return array('type' => "integer", 'value' => $v, 'strlen' => strlen($ss), 'string' => $ss);
}
switch ($s[0]) {
case "l":
return bdec_list($s);
case "d":
return bdec_dict($s);
default:
return;
}
}
 

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 03:34 27-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
если вы что то поймете

я то отлично все понимаю, но знаю что то обрабатываете и для чего используете.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 03:36 27-10-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP:Открыть файл


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru