Вы не зашли.
Главная » PHP » Общие вопросы по PHP
#901. werwap
Гость
2012.07.26 16:04
вот что нужно
Код:
span style="color: #0000BB"><?php$filename = "сюда нужно определить адрес файла"; $fh = fopen($filename, "r"); while(($str = fread($fh, 1024)) != null) $fsize += strlen($str); header('Content-Length: ' . $fsi);
#902. tipsun Off (19)
Moderator
2012.07.26 17:05
werwap написал:
подробнее код можеш написать?
Как-то так наверно.
Код:
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. tipsun Off (19)
Moderator
2012.07.26 18:06
Как найти home_url для моего скрипта?
Вчера сидел пытался найти. (В интернете искал способ найти путь до css файла, ничего нормального не нашел (плохо искал))
Вот что получилось.
Меня радует одно, что не надо вручную делать ничего smile
и $_SERVER['DOCUMENT_ROOT'] не используется.

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

Код:
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:05)
#904. tipsun Off (19)
Moderator
2012.07.26 20:08
Еще другой вариант есть.
Как-то так.
Код:
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. werwap
Гость
2012.07.26 22:10
чтото не работает, вот пример кода
Код:
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. tipsun Off (19)
Moderator
2012.07.26 23:11
werwap, Это уже другой сайт, к которому ты подключаешься, значит и другие методы, возможно.
Код:
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. werwap
Гость
2012.07.27 01:01
не работает, проверь у себя на хосте код
#908. Gemorroj Off (107)
Administrator
2012.07.27 10:10
werwap, ну ты же не бездумно копируй код. а постарайся понять почему не работает.
Например Content-Disposition не всегда выдается. Можно воспользоваться просто filesize, если нету Content-Length.
#909. tipsun Off (19)
Moderator
2012.07.28 17:05
Поправил код: p24536
#910. werwap
Гость
2012.07.29 01:01
привет, подскажите пожалоста как определить размер папки с файлами public_html/files
Страниц: 189 90 91 92 93118 Все
Главная
WEB
PunBB Mod v0.6.2
0.041 s