#901 2012.07.26 16:00

werwap
Гость

Re: Общие вопросы по PHP

вот что нужно

Код:

1
span style="color: #0000BB"><?php$filename = "сюда нужно определить адрес файла"; $fh = fopen($filename, "r"); while(($str = fread($fh, 1024)) != null) $fsize += strlen($str); header('Content-Length: ' . $fsi);

#902 2012.07.26 17:40

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

werwap написал:

подробнее код можеш написать?

Как-то так наверно.

Код:

1
span style="color: #0000BB"><?php$headers = get_headers('http://flash.mobik.ru/download.php?id=67', true);/*echo '<pre>';var_dump($headers);echo '</pre>';*/$pos = strrpos($headers['Content-Disposition'], '=');$file = substr($str, $pos + 1);echo $headers['Location'] . $file;//echo $headers['Content-Length'][1];

Неактивен

#903 2012.07.26 18:03

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Как найти home_url для моего скрипта?
Вчера сидел пытался найти. (В интернете искал способ найти путь до css файла, ничего нормального не нашел (плохо искал))
Вот что получилось.
Меня радует одно, что не надо вручную делать ничего smile
и $_SERVER['DOCUMENT_ROOT'] не используется.

Принцип прост:
Из текущего/запущеного файла, который проинклудил код/файл ниже,
удаляется относительный путь, остается абсолютный.
Потом из-за виндовса надо поменять слеши.
Потом берем значение __FILE__ include файла.
Удаляем из него абсолютный путь, остается относительный smile
Сохраняем результат.

Код:

1
span style="color: #0000BB"><?php//common.php [this is including file]//FIND HOME URL//define('COMMON_PATH', dirname(__FILE__) . DIRECTORY_SEPARATOR); //exampledefine('COMPILED_FILE', COMMON_PATH . 'compiled.php'); //example@include_once COMPILED_FILE;/*Условие можно и попроще, просто подумал, вдруг скрипт будет перенесен, переименована папка и т.п.*///+ FIND HOME URL//@include_once COMPILED_FILE;if (! (defined('PARENT_FILE') and __FILE__ == PARENT_FILE)) { $search = $replace = array(); if ('\\' == DIRECTORY_SEPARATOR) { $search[] = DIRECTORY_SEPARATOR; $replace[] = '/'; } $search[] = str_replace($_SERVER['SCRIPT_NAME'], null, $_SERVER['SCRIPT_FILENAME']); $replace[] = null; define('COMMON_URL', 'http://' . $_SERVER['HTTP_HOST'] . str_replace($search, $replace, COMMON_PATH)); define('CSS_URL', COMMON_URL . DESIGN_DIR . '/' . $designName . '/'); $content = '<?php' . PHP_EOL . '//' . $_SERVER['REQUEST_TIME'] . PHP_EOL . 'define(\'' . 'PARENT_FILE' . '\', \'' . __FILE__ .'\');' . PHP_EOL . 'define(\'' . 'COMMON_URL' . '\', \'' . COMMON_URL .'\');' . PHP_EOL . 'define(\'' . 'CSS_URL' . '\', \'' . CSS_URL . '\');'; file_put_contents(COMPILED_FILE, $content);}//- FIND HOME URL///* COMPILED FILE<?php//1343481047define('PARENT_FILE', 'W:\home\tt.php\www\trunk\includes\common.php');define('COMMON_URL', 'http://tt.php/trunk/includes/');define('CSS_URL', 'http://tt.php/trunk/includes/design/default/');*/

Отредактировано tipsun (2012.07.28 17:13)

Неактивен

#904 2012.07.26 20:12

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Еще другой вариант есть.
Как-то так.

Код:

1
span style="color: #0000BB"><?php// some file// Путь до общего файла пишется руками, всегда.define('LEVEL', '../../');require_once LEVEL . 'includes/common.php';// common.php file$myPath = 'includes/design/userDesignName/';$path = dirname($_SERVER['SCRIPT_NAME']);if (DIRECTORY_SEPARATOR <> $path) { $path = 'http://' . $_SERVER['HTTP_HOST'] . '/' . LEVEL . $myPath;}

Неактивен

#905 2012.07.26 22:19

werwap
Гость

Re: Общие вопросы по PHP

чтото не работает, вот пример кода

Код:

1
span style="color: #0000BB"><?php$file = $_GET['file']; $headers = get_headers('http://gruzmob.com/mp3_poisk/dload.php?id=88528254&br=0', true); $pos = strrpos($headers['Content-Disposition'], '='); $filename = substr($str, $pos + 1); $fh = fopen($filename, "r"); while(($str = fread($fh, 1024)) != null) $fsize += strlen($str); header('Content-Length: '.$fsize); header('Content-Type: audio/mpeg'); header('Content-Disposition: attachment; filename='.$filename.''); readfile(''.$filename.'');?>

#906 2012.07.26 23:58

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

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

Код:

1
span style="color: #0000BB"><?php$headers = get_headers('http://flash.mobik.ru/download.php?id=67', true);// Посмотри на заголовки ответа.// Раскомментируй это:/*echo '<pre>';var_dump($headers);echo '</pre>';*/$pos = strrpos($headers['Content-Disposition'], '=');$file = substr($str, $pos + 1);echo $headers['Location'] . $file; //вот же адрес.//echo $headers['Content-Length'][1]; //вот вес.

Неактивен

#907 2012.07.27 01:27

werwap
Гость

Re: Общие вопросы по PHP

не работает, проверь у себя на хосте код

#908 2012.07.27 10:32

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

werwap, ну ты же не бездумно копируй код. а постарайся понять почему не работает.
Например Content-Disposition не всегда выдается. Можно воспользоваться просто filesize, если нету Content-Length.

Неактивен

#909 2012.07.28 17:16

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Поправил код: p24536

Неактивен

#910 2012.07.29 01:24

werwap
Гость

Re: Общие вопросы по PHP

привет, подскажите пожалоста как определить размер папки с файлами public_html/files

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.035 s