Движок
Подскажите как написать простейший движок на ПХП? (домашней стр.)
Например, по сылке в шаблон инклудилась запись из ТХТ файла. :angel:
День добрый!
Подскажите как написать простейший движок на ПХП? (домашней стр.)
Например, по сылке в шаблон инклудилась запись из ТХТ файла. :angel:
Выучить PHP наверное. Другого способа я не знаю...
Выучить PHP наверное. Другого способа я не знаю...
Да нет, я думаю что просто выучить PHP (странный термин) мало.
index.php
<? text(); ?>
func.php
$text_path = "text/"; // Каталог с текстами
// Вставка блока основного текста соответственно параметру $page
function text() {
if ($page == "news") { include ($text_path."news.txt"); }
elseif ($page == "photo") { include ($text_path."photo.txt"); }
// ...
else { include ($text_path."index.txt"); }
}
?>
И text/news.txt, text/photo.txt , text/index.txt
В результате выводит:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/k/klon.h15.ru/WWW/func.php on line 7
Вот помогите найти ошибку:
index.php
<? text(); ?>
func.php
$text_path = "text/"; // Каталог с текстами
// Вставка блока основного текста соответственно параметру $page
function text() {
if ($page == "news") { include ($text_path."news.txt"); }
elseif ($page == "photo") { include ($text_path."photo.txt"); }
// ...
else { include ($text_path."index.txt"); }
}
?>
И text/news.txt, text/photo.txt , text/index.txt
В результате выводит:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/k/klon.h15.ru/WWW/func.php on line 7
Во первых ты обьявляешь переменную $text_path вне функции никак ее не передавя... правильно
function text($text_path,$page) {
if ($page == "news") { include ($text_path."news.txt"); }
elseif ($page == "photo") { include ($text_path."photo.txt"); }
// ...
else { include ($text_path."index.txt"); }
}
во вторых при вызове функции нужно указать переменные
<? require("func.php"); ?>
<? text($text_path,$page); ?>
в третьих
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/k/klon.h15.ru/WWW/func.php on line 7
означает что есть ошибка синтаксиса, проверь внимательно
Но есть новая проблема: как из text/index.txt название заголовка передать на шаблон?
К примеру:
Index.php
<title><? echo $pagettl; ?></title>
<? text($text_path,$page); ?>
text/index.txt
$pagettl = "Spirit и Opportunity";
?>
.........html and text...........
Помогите еще раз:angel:
Можешь попробовать подключать его в начале, а потом вызывать функцию, которая определена в нем же
Т.е при подключении не выводить сразу текст
Например
index.php
<?php
require("func.php");
text($text_path,$page);
// ....
echo "<title> $pagettl </title>";
// ....
WritePage();
?>
index.txt
<?php
$pagettl = "Page title";
function WritePage() {?>
<?}?>
Текст он выводит а название нет. А можно его чуть перековырят: сначала открывал index.txt, читал с него переменную $pagettl, выодил на index.php и только затем инклудит сам текст из ТХТ файла
Попробуй
Главный метод получения опыта это метод проб и ошибок ;)
Но, я ни где не нашел как читать файл с 2,3,4... строки и до конца или до переноса. Нашел только fgets, который читает только 1 строчку.
Сам код:
index.php
function foo ($in) {
#если не вызывается просто index.php то происходит вставка вызываемого файла
if ($in != "") {$out=$in;}
# если происходит вызов index.php3 без имени файла, то по умолчанию, вставляется файл main
else {$out="main.html";} return $out;}
$file_name = foo($QUERY_STRING) ;
if (is_readable($file_name)) {
$r=fopen($file_name,'r');
$text_name=fgets($r,filesize($file_name));
$text_content=fgets($r,НУЖНО прочесть с 2 строчки и до конца.);
fclose($r);
echo $text_name;
echo $text_content;
} else { echo "ОШИБКА! Невозможно отoбразить страницу" ; }
?>
Верно, я плохо искал:roll:
Домысливаем дальше и приходим к выводу, что циклы рулят:)
Если честно, ничего не понял...X)-
Откуда тут циклы?
Если честно, ничего не понял...X)-
Откуда тут циклы?
В том то и дело, что их тут нету... Если ты хочешь прочитать файл построчно полностью, занчит нужно узнать сколько там строчек и в цикле построчно прочитать. Или я чего не понял?
Или я чего не понял?
Вы, похоже, оба не поняли ;)
Функций с файлами у PHP как минимум не мало
Вот некоторые для чтения/записи
feof -- Проверяет, достигнут ли конец файла
fflush -- Сброс буфера вывода в файл
fgetc -- Считывает символ из файла
fgetcsv -- Читает строку из файла и производит разбор данных CSV
fgets -- Читает строку из файла
fgetss -- Прочитать строку из файла и отбросить HTML-теги
file_exists -- Проверить наличие указанного файла или каталога
file_get_contents -- Получить содержимое файла в виде одной строки
file_put_contents -- Записать строку в файл
file -- Читает содержимое файла и помещает его в массив
fileatime -- Получить время последнего доступа к файлу
filectime -- Получить время последнего изменения i-узла
filegroup -- Получить идентификатор группы файла
fileinode -- Получить номер inode файла
filemtime -- Получить время последнего изменения файла
fileowner -- Получить идентификатор владельца файла
fileperms -- Получить информацию о правах на файл
filesize -- Получить размер файла
filetype -- Получить тип файла
flock -- Портируемое рекоммендательное запирание файлов
fnmatch -- Совпадает ли имя файла с шаблоном
fopen -- Открывает файл или URL
fpassthru -- Выводит все оставшиеся данные из файлового указателя
fputcsv -- Форматирует строку в виде CSV и записывает её в файловый указатель
fputs -- Псевдоним функции fwrite()
fread -- Бинарно-безопасное чтение файла
fscanf -- Обрабатывает данные из файла в соответствии с форматом
fseek -- Устанавливает смещение в файловом указателе
fstat -- Получает информацию о файле используя открытый файловый указатель
ftell -- Сообщает текущее смещение чтения/записи файла
ftruncate -- Урезает файл до указанной длинны
fwrite -- Бинарно-безопасная запись в файл
На самом деле, рулит хелп ))
Вы, похоже, оба не поняли ;)
Функций с файлами у PHP как минимум не мало
Вот некоторые для чтения/записи
feof -- Проверяет, достигнут ли конец файла
...........
fwrite -- Бинарно-безопасная запись в файл
На самом деле, рулит хелп ))
Тебе большой респект за труды!, но я упрямый, сделал по своему. Слава богу работает. Теперь дошло и до админьки. Первым делом нужно организовать удаление файлов из базы (база это папка с ТХТ файлами). Как узнать какие файлы там уже есть и вывести на экран?
Тебе большой респект за труды!, но я упрямый, сделал по своему. Слава богу работает. Теперь дошло и до админьки. Первым делом нужно организовать удаление файлов из базы (база это папка с ТХТ файлами). Как узнать какие файлы там уже есть и вывести на экран?
Слушай, слабо мануал.chm какой-нить выкачать? там таких примеров хоть попой ешь. вот например:
$dir = "/tmp/";
// Открыть заведомо существующий каталог и начать считывать его содержимое
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>
Слушай, слабо мануал.chm какой-нить выкачать? там таких примеров хоть попой ешь. вот например:
$dir = "/tmp/";
// Открыть заведомо существующий каталог и начать считывать его содержимое
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
print "Файл: $file : тип: " . filetype($dir . $file) . "\n";
}
closedir($dh);
}
}
?>
Только товарищи не забываем вырезать "." и "..".