RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 449
от 04.09.2006, 14:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 344, Экспертов: 46
В номере:Вопросов: 9, Ответов: 29


Вопрос № 53636: Здравствуйте! Моэете дать прямю ссылку что бы скачать denever?...
Вопрос № 53643: В общем проблема такая. Есть структура сайта.. есть страница /login/ по mod_rewrite она грузится login.php там устанавливаются кукисы: setcookie("name", "var", time, '/login/', '.domain'); Потом есть необх...
Вопрос № 53650: Здравствуйте! У меня такой вопрос: как узнать размер того или иного файла на сервере? И ещё такой: если у меня есть форма с кнопочкой "Browse" для указания пути файла на винчестере пользователя, то как через такую форму закачать фай...
Вопрос № 53663: Здравствуйте, эксперты! Подскажите пожалуйста какую-нибудь округляющую функцию Спасибо!...
Вопрос № 53681: Здравствуйте, эксперты! Подскажите пожалуйста какую-нибудь функцию, с помощью которой можно узнать сколько строк в том или ином файле Спасибо!...
Вопрос № 53692: Ув. эксперты, подкиньте ссылочку, по которой можно поизучать PHP в полном объёме...
Вопрос № 53714: Здравствуйте. Я пытаюсь воспользоваться функцией header, но вылезает такая ошибка. А вобще мне нужно организовать такую вещь: чтоб через 10 сек после выполнения скрипта посетитель попадал на определённую страницу. Спасибо!...
Вопрос № 53730: Здравствуйте, эксперты! Объясните пожалуйста как пользоваться переменными $GLOBALS и $_SESSION. Мне нужно во время всей сессии хранить определённую переменную. $_SESSION['<имя переменной>'] не работает. Что я не правильно делаю? Зар...
Вопрос № 53760: Здравствуйте! Объясните пожалуйста как создать файл на сервере? Если для этого подходит функция tempnam(), то как ей пользоваться?...

Вопрос № 53.636
Здравствуйте! Моэете дать прямю ссылку что бы скачать denever?
Отправлен: 29.08.2006, 13:56
Вопрос задал: ataman (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Козлов Алексей Сергеевич
Здравствуйте, ataman!
Если я правильно понял, что нужен пакет Denwer, то:
http://denwer.ru
---------
Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов Алексей Сергеевич (статус: 6-ой класс)
Ответ отправлен: 29.08.2006, 13:59

Отвечает: Марк Крейн
Здравствуйте, ataman!
Денвер можно скачать здесь.
Ответ отправил: Марк Крейн (статус: Студент)
Ответ отправлен: 29.08.2006, 14:01

Отвечает: Бакулин Станислав Анатольевич
Здравствуйте, ataman!
Denwer можно скачать с http://www.denwer.ru/dis/
Есть еще альтернативы Denwer'у - я лично пользуюсь AppServ: в последнюю версию (AppServ 2.5.6) входят Apache 2.2.2, MySQL 5.0.22, PHP 5.1.4 и phpMyAdmin-2.8.2. AppServ можно скачать с http://sourceforge.net/project/showfiles.php?group_id=37459
Ответ отправил: Бакулин Станислав Анатольевич (статус: 1-ый класс)
Ответ отправлен: 30.08.2006, 13:29


Вопрос № 53.643
В общем проблема такая.
Есть структура сайта.. есть страница /login/
по mod_rewrite она грузится login.php
там устанавливаются кукисы:
setcookie("name", "var", time, '/login/', '.domain');

Потом есть необходимость удаления куки... вызывается по /login/?cookie=1

там происходит удаление: setcookie("name", "var", time()-60*60*24*366, '/login/','.domain');

но! Проблема в том, что IE и другие браузеры продолжают слать куки если в строке запроса есть /login/ то есть если опять запросить эту страницу то куки установлены.

Отлавливал через ieHTTPHeaders v1.6 там удаление есть, но всеравно шлет..

незнаю куда копать... или это баг в path или потому что на локалке.. незнаю... в общем вот такая просьба ответить ;)
Отправлен: 29.08.2006, 14:31
Вопрос задал: XMF (статус: 6-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cimus
Здравствуйте, XMF!
Попробуй удалить, путём вызова функции setcookie с одним только аргументом имени файла cookie или можно указать время жизни time()+1 - тоесть через 1 секунду браузер должен будет сам удалить этот файл.
---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 29.08.2006, 17:10


Вопрос № 53.650
Здравствуйте!
У меня такой вопрос: как узнать размер того или иного файла на сервере?
И ещё такой: если у меня есть форма с кнопочкой "Browse" для указания пути файла на винчестере пользователя, то как через такую форму закачать файл на сервер?
Спасибо!
Отправлен: 29.08.2006, 15:09
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Santana
Здравствуйте, Tossha!
По первому вопросу

filesize

(PHP 3, PHP 4, PHP 5)
filesize -- Получить размер файла
Описание
int filesize ( string filename )
Возвращает размер указанного файла в байтах или FALSE в случае возникновения ошибки.

Замечание: Поскольку PHP использует знаковое представления для чисел целого типа, а многие платформы используют 32-битные целые числа, функция filesize() может возвращать неожиданные значения для файлов, чей размер превосходит 2 Гб. Если размер файла находится в пределах 2 - 4 Гб, корректное значение можно получить, используя конструкцию sprintf("%u", filesize($file)).

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Ответ отправил: Santana (статус: 6-ой класс)
Ответ отправлен: 29.08.2006, 15:21

Отвечает: Cimus
Здравствуйте, Tossha!
На первый вопрос Вам уже подробно отвеиели.
По второму вопросу-
для начала посмотрим саму форму:
в свойствах формы, помимо параметра action и метода отправки, необходимо указать свойство enctype. Это свойство определяет в какой кодировке должны быть отправленны данныые. Для файлов, особенно бинарных, кодировки недолжно быть вообще, поэтому указываем enctype="multipart/form-data".
После загрузки файлов на сервер, данные можно получить из массива $HTTP_POST_FILES. Этот массив являеться двумерным. Первый уровень определяет имена полей, в которых находяться параметры файла. Одна форма может отправлять несколько файлов, поэтому $HTTP_POST_FILES['поле'] - указывает на нужный файл. Для вормы из примера это будет $HTTP_POST_FILES['file1'] и $HTTP_POST_FILES['file2'] соответственно.
Второй уровень определяет свойства загруженного файла. Здесь есть следующие элементы:
1)name - имя файла источника на машине клиента
2)type - тип файла
3)tmp_name - имя временного файла, куда был загруженфайл пользователя
4)size - размер файла
5)error - номер ошибки
На unix-серверах временный файл создаёться (чаще всего) в каталоге /temp, который являеться общедоступным. Будет намного эффективнее если в сценарии загружаемый файл будет скопирован в специально отведённый для этого каталог.

В данном примере файл копируеться в каталог со скриптом
if(copy($HTTP_POST_FILES['file1']['tmp_name'],'./'.$HTTP_POST_FILES['file1']['name']))
print 'копирование завершено';
else
print 'ошибка копирования';

В само форме можно указать максимальный размер загружаемого файла
<input type=hidden name="max_file_size" value=300> - максимум 300 байт

Приложение:

---------
Достичь можно любых высот !

Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 29.08.2006, 18:50

Отвечает: Stamm
Здравствуйте, Tossha!
В дополнение получите ф-кцию, кот. преобразует размер в байты, Кб, Мб, Гб:
function size($file_size){
if($file_size >= 1073741824)
{$file_size = round($file_size / 1073741824,2) . " Гб";}
elseif($file_size >= 1048576)
{$file_size = round($file_size / 1048576,2). " Мб";}
elseif($file_size >= 1024)
{$file_size = round($file_size / 1024,2) . " Кб";}
else{$file_size = $file_size . " б";}
return $file_size;
}
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Stamm (статус: Практикант)
Ответ отправлен: 29.08.2006, 21:56


Вопрос № 53.663
Здравствуйте, эксперты!
Подскажите пожалуйста какую-нибудь округляющую функцию
Спасибо!
Отправлен: 29.08.2006, 16:42
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Марк Крейн
Здравствуйте, Tossha!
Функция round($a, $b) где $a - число с плавающей точкой, которое необходимо округлить, $b - количество знаков после запятой. Иначе говоря, точность округления.
Ответ отправил: Марк Крейн (статус: Студент)
Ответ отправлен: 29.08.2006, 16:48

Отвечает: Галушко Павел Павлович
Здравствуйте, Tossha!
куда = round (что, [точность])
$foo = round (3.4); // $foo = 3.0
$foo = round (3.5); // $foo = 4.0
$foo = round (1.95583, 2); // $foo = 1.96
куда = floor (что) - Удаление дробной части
$foo = floor(1.95583); // $foo = 1


куда = ceil(что) - Дополнение дробного чилса до следующего целого
$foo = ceil(1.95583); // $foo = 2

---------
И это пройдет © надпись на кольце Соломона
Ответ отправил: Галушко Павел Павлович (статус: 2-ой класс)
Ответ отправлен: 29.08.2006, 16:51

Отвечает: Евгений Неверов
Здравствуйте, Tossha!
ceil, floor и round. выбирайте любую
Ответ отправил: Евгений Неверов (статус: Студент)
Ответ отправлен: 29.08.2006, 16:55

Отвечает: Strory
Здравствуйте, Tossha!

Функция floor округляет вниз, например:

echo floor(4.3); // 4
echo floor(9.999); // 9

Функция ceil округляет вверх:

echo ceil(4.3); // 5
echo ceil(9.999); // 10

Функция round округляет до N-го знака:

echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06

С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 30.08.2006, 02:15


Вопрос № 53.681
Здравствуйте, эксперты!
Подскажите пожалуйста какую-нибудь функцию, с помощью которой можно узнать сколько строк в том или ином файле
Спасибо!
Отправлен: 29.08.2006, 17:52
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Евгений Неверов
Здравствуйте, Tossha!
Это можно сделать так:
$text='тут текст в несколько строк';
$z=explode(" ", $text);
$count=count($z);

echo 'Количество строк в тексте: ' . $count;
?>
Ответ отправил: Евгений Неверов (статус: Студент)
Ответ отправлен: 29.08.2006, 17:58

Отвечает: Santana
Здравствуйте, Tossha!
Функция file() грузит файл в массив каждую строчку в отдельный элемент массива. Иссесно число элементов = числу строк в файле
Ответ отправил: Santana (статус: 6-ой класс)
Ответ отправлен: 29.08.2006, 18:03

Отвечает: Stamm
Здравствуйте, Tossha!
Вот как узнать кол-во строк:
print count(file('1.html'))
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Stamm (статус: Практикант)
Ответ отправлен: 29.08.2006, 21:56

Отвечает: Strory
Здравствуйте, Tossha!

Считываем файл в массив:
  $my_file = file($my_file_name);
Получаем количество строк:
  $count_string = count($my_file);

С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 30.08.2006, 02:14


Вопрос № 53.692
Ув. эксперты, подкиньте ссылочку, по которой можно поизучать PHP в полном объёме
Отправлен: 29.08.2006, 19:30
Вопрос задал: Олег Владимирович (статус: 2-ой класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Евгений Крюков
Здравствуйте, Басков Олег Владимирович!
английский - php.net
основы - http://www.firststeps.ru/
технологии и многое другое - http://phpclub.ru
---------
Большинство ответов на вопросы в рассылках находиться через Яндекс за 1 мин.
Ответ отправил: Евгений Крюков (статус: Студент)
Ответ отправлен: 29.08.2006, 19:38

Отвечает: Cimus
Здравствуйте, Басков Олег Владимирович!
Для азов Вам подайдёт вот это http://www.softtime.ru/info/bookphp.php ,
а потом можно и php.net , http://ru.php.net/manual/ru/printwn/index.php
Загрузить можно вот тут http://www.php.net/download-docs.php и по первой ссылке.

---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 29.08.2006, 20:02

Отвечает: Козлов Алексей Сергеевич
Здравствуйте, Басков Олег Владимирович!
Документацию смотри на следующих сайтах:
http://www.natahaus.ru
http://wmate.ru
http://whatis.ru
http://networkdocs.ru

Особенно поищи "PHP 5" Котера и Костарева.
---------
Вы доставили мне истинное удовольствие парни, взвалив на меня Ваши проблемы (М. Фрай).
Ответ отправил: Козлов Алексей Сергеевич (статус: 6-ой класс)
Ответ отправлен: 29.08.2006, 21:34

Отвечает: Strory
Здравствуйте, Басков Олег Владимирович!

http://www.php.net/download-docs.php - полное руководство.

http://zipsites.ru/books/php4/ - отличный учбник. Котеров Д. В. Самоучитель PHP 4

С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 30.08.2006, 02:14

Отвечает: Бакулин Станислав Анатольевич
Здравствуйте, Басков Олег Владимирович!
http://citforum.ru/internet/php.shtml
http://www.i2r.ru/static/373/
http://www.phpclub.ru/
http://www.php.net/manual/ru/ - Руководство по PHP
Ответ отправил: Бакулин Станислав Анатольевич (статус: 1-ый класс)
Ответ отправлен: 30.08.2006, 13:13


Вопрос № 53.714
Здравствуйте.
Я пытаюсь воспользоваться функцией header, но вылезает такая ошибка. А вобще мне нужно организовать такую вещь: чтоб через 10 сек после выполнения скрипта посетитель попадал на определённую страницу.
Спасибо!

Приложение:

Отправлен: 29.08.2006, 22:46
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Stamm
Здравствуйте, Tossha!
Эта ошибка возникла из-за того, что перед вызовом ф-ции header() в браузер был послан текст.
Лучше сделать через мета-тэги:
<Meta http-equiv="refresh" content="10 url=http://site.com/1.html">
---------
Этот мир обречён на нас
©Сергей Маврин
Ответ отправил: Stamm (статус: Практикант)
Ответ отправлен: 29.08.2006, 22:59

Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Tossha!
Вы не должны выводить что-либо (т.е. echo, print, ...) до выполнения header(). Это и вызывает ошибку.
header() обязана вызываться до отправки любого вывода: нормальными ли тэгами HTML, пустыми строками в файле, или из PHP.
Удачи!
Ответ отправил: Яруллин Азат Рифкатович (статус: 10-ый класс)
Ответ отправлен: 29.08.2006, 23:05

Отвечает: Jeka911
Здравствуйте, Tossha!

header нужно вызывать перед выводом текста, или пользоваться функциями: ob_start(), ob_end_flush(); ob_start перенаправляет вывод в буффер, а end_flush передает его содержимое клиенту.

Приложение:

---------
Шахтер - чемпион!!!

Ответ отправил: Jeka911 (статус: 8-ой класс)
Ответ отправлен: 29.08.2006, 23:07

Отвечает: Cimus
Здравствуйте, Tossha!
Данный скрипт переадресует пользователя на нужную страницу через 10 секунд

language="javascript" type="text/javascript">
<!--
setTimeout("location.href='адрес страницы'",10000);
-->
</script>

или можно воспользоваться мета тегами

<Meta http-equiv="refresh" content="10 url=http://адрес страницы">

---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 7-ой класс)
Ответ отправлен: 30.08.2006, 00:58

Отвечает: Strory
Здравствуйте, Tossha!
Функция header отправляет заголовки. Заголовки дожны быть отправлены до любого вывода. Это ограничение можно обойти с помощью функции буферизации вывода ob_start. Но лучше будет пересмотреть свой скрипт и отправлять заголовки как и положено в начале.

С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 30.08.2006, 02:15


Вопрос № 53.730
Здравствуйте, эксперты!
Объясните пожалуйста как пользоваться переменными $GLOBALS и $_SESSION. Мне нужно во время всей сессии хранить определённую переменную. $_SESSION['<имя переменной>'] не работает.
Что я не правильно делаю?
Заранее спасибо!
Отправлен: 30.08.2006, 01:40
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Tossha!
Сначала нужно написать session_start(); - создаёт сессию или продолжает текущую.
А потом $_SESSION['<имя переменной>'] = '...';
Если вы используете сессии на базе кук, вы обязаны вызвать session_start() перед каким-либо выводом в браузер.
(примеры в приложении)
Удачи!

Приложение:

Ответ отправил: Яруллин Азат Рифкатович (статус: 10-ый класс)
Ответ отправлен: 30.08.2006, 02:09
Оценка за ответ: 5

Отвечает: Strory
Здравствуйте, Tossha!

Для работы с сессиями существуют стандартные функции. Например, с помощью функции session_name нужно задать имя сессии. Функция session_start инициализирует сессию. Функция session_register регистрирует новую переменную для текущей сессии.

Небольшой пример (счётчик посещения страницы за текущую сессию):

<?
session_name("CounterScript");
session_start();
session_register("count");
$count = $count+1;
?>
В текущей сессии вы открыли эту страницу <?=$count?> раз(а).

С уважением,
  Strory.
Ответ отправил: Strory (статус: Практикант)
Ответ отправлен: 30.08.2006, 02:45


Вопрос № 53.760
Здравствуйте!
Объясните пожалуйста как создать файл на сервере? Если для этого подходит функция tempnam(), то как ей пользоваться?
Отправлен: 30.08.2006, 13:11
Вопрос задал: Tossha (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Tossha!
смотри http://www.php.net/manual/ru/ref.filesystem.php
Ответ отправил: Santana (статус: 6-ой класс)
Ответ отправлен: 30.08.2006, 13:27
Оценка за ответ: 4

Отвечает: Яруллин Азат Рифкатович
Здравствуйте, Tossha!

$handle = fopen("dir/file.txt", "w");
// w - Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длинны. Если файл не существует - пробует его создать.
fwrite($handle, "здесь содержимое файла");
fclose($handle);

Удачи!

Приложение:

Ответ отправил: Яруллин Азат Рифкатович (статус: 10-ый класс)
Ответ отправлен: 30.08.2006, 13:39
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.35 от 27.07.2006
Яндекс Rambler's Top100

В избранное