Возникла у меня след. проблемма:
Я вообще программирую на делфи, и о ПХП ничего не знаю... Но случилось так, что мне нужен маленький кодик, для своего проекта.. Смысл заключается в след.
На диске сервера лежит programma.htm файл... (он пустой).. + На диске сервера лежит файл output.txt (там записано только одно число) ....
Дак вот что мне нужно:
Если этот хтм файл используется, то считывается информация из txt файла (тоесть достается это число) .... Прибавляется к нему еденичка (+1) и перезаписывается txt файл с уже новыми данными..
Мне сказали что это очень просто для пхп программистов... Если не трудно, помогите... Спасибо!
Спустя 6 минут, 17 секунд (4.05.2012 - 23:31) m4a1fox написал(а):
Antoxachelsea
Элементарно Ватсон. file_get_contents() и file_put_contents()
Элементарно Ватсон. file_get_contents() и file_put_contents()
Спустя 2 минуты, 5 секунд (4.05.2012 - 23:33) Antoxachelsea написал(а):
Цитата (m4a1fox @ 4.05.2012 - 21:31) |
Antoxachelsea Элементарно Ватсон. file_get_contents() и file_put_contents() |
Я даже близко не имею понятия о синтаксисе пхп и поэтому эти процедуры мне никак не помоги =(
Не могли бы вы мне написать полный код, для моей задачи? Он вроде, не большой должен быть ...
Спустя 3 минуты, 25 секунд (4.05.2012 - 23:36) m4a1fox написал(а):
А! Так тебе написать надо... Так это тебе в другую ветку форума надо. В ветку проекты!
Спустя 4 минуты, 8 секунд (4.05.2012 - 23:40) Antoxachelsea написал(а):
Ты мне очень помог, спасибо!
Спустя 8 минут, 28 секунд (4.05.2012 - 23:49) SitnikovArtur написал(а):
<?php
// эта строка считывает число
$int = file_get_contents('output.txt');
// эта увеличивает его на единицу
$int++;
// эта записывает новое число в файл
file_put_contents('output.txt', $int);
?>
Спустя 7 минут, 6 секунд (4.05.2012 - 23:56) Antoxachelsea написал(а):
Цитата (SitnikovArtur @ 4.05.2012 - 21:49) |
<?php |
Спасибо за уделенное мне время!
____
Пробую вот что сделать.... Создал .html файл у себя на компе и записал туда ваш код... Создал .txt файл в этом же корне и записал там 0.
Запускаю файл .html , однако 0 на 1 не сменился... Почему так?
Спустя 7 минут, 30 секунд (5.05.2012 - 00:03) m4a1fox написал(а):
Для работы php необходим сервер.
Спустя 1 минута, 51 секунда (5.05.2012 - 00:05) SitnikovArtur написал(а):
php-код должен находиться в файле с расширением php
Если принципиально с расширением html, то можно в ту же директорию положить файл .htacces (без имени, с точки начинается) и вписать в него следующее:
AddHandler application/x-httpd-php .html
Разумеется должен быть Денвер и т.п. чтобы php "кто-то" исполнял.
Если принципиально с расширением html, то можно в ту же директорию положить файл .htacces (без имени, с точки начинается) и вписать в него следующее:
AddHandler application/x-httpd-php .html
Разумеется должен быть Денвер и т.п. чтобы php "кто-то" исполнял.
Спустя 32 секунды (5.05.2012 - 00:06) Antoxachelsea написал(а):
Цитата (m4a1fox @ 4.05.2012 - 22:03) |
Для работы php необходим сервер. |
То есть если у меня этот хтм файл будит лежать на фтп сервере (допустим) , то тогда при вызове его информация в файле .txt будит меняться ???
Спустя 1 минута, 22 секунды (5.05.2012 - 00:07) Antoxachelsea написал(а):
Цитата (SitnikovArtur @ 4.05.2012 - 22:05) |
php-код должен находиться в файле с расширением php Если принципиально с расширением html, то можно в ту же директорию положить файл .htacces (без имени, с точки начинается) и вписать в него следующее: AddHandler application/x-httpd-php .html Разумеется должен быть Денвер и т.п. чтобы php "кто-то" исполнял. |
Спасибо огромное! Я всё понял!
ФТП же сервер для этих действий подойдет?
Спустя 1 минута, 43 секунды (5.05.2012 - 00:09) m4a1fox написал(а):
Если на фтп есть связка php+apache тотподойдет
Спустя 1 минута, 20 секунд (5.05.2012 - 00:10) SitnikovArtur написал(а):
Если сервер настроен так, что обрабатывает php код, то да, будет.
Если все же не будет, но сервер (хостинг наверное?) исполняет php скрипты, то необходимо установить на файл права на запись. Это делается в файловом (ftp) менеджере, нажав на файл правой кнопкой, увидите соответствующий пункт. Либо отметить все пункты "запись" либо установить права 777, зависит от ftp-клиента.
Если все же не будет, но сервер (хостинг наверное?) исполняет php скрипты, то необходимо установить на файл права на запись. Это делается в файловом (ftp) менеджере, нажав на файл правой кнопкой, увидите соответствующий пункт. Либо отметить все пункты "запись" либо установить права 777, зависит от ftp-клиента.
Спустя 9 минут, 55 секунд (5.05.2012 - 00:20) walerus написал(а):
Antoxachelsea давай по порядку...
Цитата |
На диске сервера лежит programma.htm |
1) Сервер - локальный или нет.
2) Поддерживает сервер выполнение PHP файлов(скриптов)
для теста создаем файл - test.php, в нем пишем
<?php echo "Hello People"; ?>пробуем запустить этот файл из броузера, если видим наш текст, то PHP - работает, и наоборот )
3) Если работает, то создаем файл ".htacces" именно с таким именем как в кавычках, точка обязательна !!!. внутри этого файла пишем "AddHandler application/x-httpd-php .html", и кладем этот файл в корень сайта/папки или чего там у тебя.
4) В своем файле "programma.htm" в самом начале пишешь
<?php
// Проверяем, существует ли файл
if ( file_exists( 'output.txt' ) )
{
// Если файл существует, считываем данные из файла,
// добавляем единицу и сохраняем его
// эта строка считывает число
$int = file_get_contents( 'output.txt' );
// эта увеличивает его на единицу
$int++;
// эта записывает новое число в файл
file_put_contents( 'output.txt', $int );
}
else
{
// Если файл не существует, создаем его и записываем единицу
file_put_contents('output.txt', '1' );
}
?>
вроде все.
Спустя 3 часа, 12 минут, 28 секунд (5.05.2012 - 03:32) Dagot написал(а):
А почему вы все используете постинкремент?
при первом выполнении он так и запишет 0 в файл.
Тут необходимо использовать такой инкремент
этот инкремент сразу присвоит значение на единицу больше.
при первом выполнении он так и запишет 0 в файл.
Тут необходимо использовать такой инкремент
++$int
этот инкремент сразу присвоит значение на единицу больше.
Спустя 2 часа, 56 минут, 57 секунд (5.05.2012 - 06:29) Adamant написал(а):
Цитата (Dagot @ 5.05.2012 - 07:32) |
А почему вы все используете постинкремент? при первом выполнении он так и запишет 0 в файл. Тут необходимо использовать такой инкремент ++$int этот инкремент сразу присвоит значение на единицу больше. |
Можно записать так
$int = file_get_contents('output.txt');
// эта увеличивает его на единицу
$int++;
// можно записать и ++$i;
// разницы нет, инкремент происходит в этой строке а не ниже по коду
// эта записывает новое число в файл
file_put_contents('output.txt', $int);
Можно и так
file_put_contents('output.txt', file_get_contents('output.txt') + 1);
Разница лишь в экономии места. Работать будет одинаково.
Спустя 7 минут, 32 секунды (5.05.2012 - 06:37) Dagot написал(а):
Ну почему разницы то нет? $i++ и ++$i это же разные операторы, постинкремент увеличивает на еденицу и возвращает изначальное значение, а преинкремент сразу вовращает увеличиное значение.
т.е в случае автора, это имеет значение, так как используя постинкремент будет всегда записываться тоже значение какое и было. постинкремент полезен в основном только в циклах.
$i = 0
echo $i++; //выведет 0
$i = 0
echo ++$i; //выведет 1
т.е в случае автора, это имеет значение, так как используя постинкремент будет всегда записываться тоже значение какое и было. постинкремент полезен в основном только в циклах.
Спустя 14 минут, 40 секунд (5.05.2012 - 06:52) Adamant написал(а):
Dagot, вы вообще не в том контексте мысль свою развиваете. Причем здесь
echo ++$i и echo $i++;
Когда у вас такой код
echo ++$i и echo $i++;
Когда у вас такой код
// разница между этим кодом
$i = 0;
$i++;
echo $i;
// и этим кодом,
$i = 0;
++$i;
echo $i;
//по конечному результату АБСОЛЮТНО никакой
Спустя 23 минуты, 56 секунд (5.05.2012 - 07:16) Dagot написал(а):
Да, действительно
Спасибо, что доказали мне обратное, буду знать) я искренне верил что это две разных вещи, а чем тогда они отличаются?
Спасибо, что доказали мне обратное, буду знать) я искренне верил что это две разных вещи, а чем тогда они отличаются?
Спустя 16 минут, 48 секунд (5.05.2012 - 07:32) kotoFF написал(а):
Цитата (Dagot @ 5.05.2012 - 05:16) |
Да, действительно :o Спасибо, что доказали мне обратное, буду знать) я искренне верил что это две разных вещи, а чем тогда они отличаются? |
$i++ сначала возвращает исходное значение, а затем увеличивает значение переменной $i на 1 и при следующем обращении к ней она будет содержать новое значение.
++$i увеличивает сразу значение на 1 и при последующем обращении будет новое значении
Поэтому код
echo $i++;
выведет сначала старое значение $i, а затем обновит его, а
echo ++$i
- сразу новое значение