Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Помогите с PHP
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Описание: Несколько вопросов есть
lift
Отправлено: 23 Июля, 2007 - 06:45:10
Post Id


Newbie


Покинул форум
Сообщений всего: 39
Дата рег-ции: Июль 2007  

Карма -7




Я не сильно в PHP подкован по этому вот накопилось немного вопросов (я делаю скрипт, графичесую оболочку сделал, все вроде сделал, но я пока не могу с php разобраться).
Вопрос 1:
Как это не смешно, я умею использовать
CODE:
<?php include "файл.php"; ?>

но когда таких инклюдов много и разные они, то количество этих самый "файл.php" стоновиться безобразным.
Подскажите как мне как сделать так, чтобы я собрал такие инклюды я один файл (например include.php) а в тело скрипта вписывал переменные как то вроде такого:
CODE:
<?php include "include.php" $test; ?>

(кстати как правильно такой инклюд писать я тоже не знаю) а в файле инклюдов будет стоять что-то типа
CODE:
$test=функция

Вопрос 2 (вытекает из первого):
У нас есть файл с переменными, теперь надо на них повесить функции причем тоже хитро Улыбка А конкретнее это должен быть двойной рандом. Вот как это должно выглядить:
1) Делаем файл random_base.txt (именно txt) и кидаем его далеко далеко от того места где php интерпритатор работает (есть такая сложность что он должн далеко быть) но до этого места из php доступ на чтене есть. Например на локалхосте рандом будет в корне С и тогда из локалхоста из директории www он будет доступен по адресу
../../../random_base.txt
2) Возвращаемся к файлу include.php, в нем делаем переменные, например
CODE:
$test
$test2
...
$testN

3) Эти переменные должны обращаться у файлу random_base.txt и читать его но каждый только свою часть. Я предпологаю так, что это будет в файле random_base.txt выглядить так:
CODE:

<$test>
test_base1.txt
test_base2.txt
</$test1>
<$test1>
test1_base1.txt
...
test1_baseN.txt
</$test1>
....
<$testN>
testN_base1.txt
....
testN_baseN.txt
</$testN>

И должны выбирать из них рандомно в своих пределах файл
4) Выбрав файл, например test1_base1.txt, из него должна рандомно взяться одна строчка от начала и до конца и вернуться после всех мытарств туда, куда мы поставили
CODE:
<?php include "include.php" $test; ?>

(ну или как правильно, в общем смотрите вопрос 1 Улыбка )
Вроде с этим все, описал как мог, если не понятно то спрашвайте, я поконкретнее напишу Улыбка
Теперь следующая задача, она-же
Вопрос 3:
Имеем 2 файла: index.php и page.php
Первый это естественно листинг дериктории, а второй это шаблон в который вставляется информация. Причем файлов page.php естественно много. Если бы я писал на HTML то пришлось бы делать каждый отдельно, но мы пишем на php по этому вопрос такой, как мне правильно организовать обращение от файла index.php к файлу page.php чтобы в адресной строке брайзера это выглядело как
CODE:

index.php?page=1
index.php?page=2
...
index.php?page=N

И при этом можно было бы нормально попасть туда как из страницы индекса, так и при переходе по ссылке.
И потом усложняем немного задачу и добавляем еще post.php. Как сделать так, чтоб доступ к нему был соответственно
CODE:
index.php?page=N&post=N.php

или
CODE:
index.php?page=N?post=N.php

(не знаю как правильно)
И еще, количество страниц page постоянно и количетво страниц post тоже постоянно.
Вот собственно и все вопросы. Подскажите пожалусто кто знает Улыбка
 
 Top
Furax
Отправлено: 23 Июля, 2007 - 07:05:26
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




lift
Так, ну по первому вопросу вроде достаточно только объявить переменные в инклюдируемом файле.

По второму - ну ты, конечно, загнул... Первое, что приходит в голову - это сделать XML-файл вида
CODE:
<var name="$test1">test1_base1.txt
test1_base2.txt</var>
и дальше воспользоваться средствами разбора XML. Рандомный выбор можешь и сам сделать. Кстати, если файлы действительно так проименованы - достаточно хранить только число этих bas'ов в каждом test'е. А вообще, мой тебе совет - заведи базу данных. Намного проще будет с тем, что ты навертел...

По третьему - просто:
CODE:
$page=(int)$_HTTP['page'];
if (($page>=1) && ($page<=MAX)) include("page$page.php");
и аналогично для post. Правильный вариант адреса - первый.
 
 Top
lift
Отправлено: 23 Июля, 2007 - 09:32:41
Post Id


Newbie


Покинул форум
Сообщений всего: 39
Дата рег-ции: Июль 2007  

Карма -7




Furax пишет:
Так, ну по первому вопросу вроде достаточно только объявить переменные в инклюдируемом файле.

Тоесть мне надо будет в странице поставить такой код:
CODE:
<?php include $test; ?>

Да? А как мне тогда прописать в каком файле лежит данная переменная? (я нуб)
И тогда про:
Furax пишет:
По третьему - просто:
CODE:
$page=(int)$_HTTP['page'];
if (($page>=1) && ($page<=MAX)) include("page$page.php"Подмигивание;
и аналогично для post. Правильный вариант адреса - первый.

Я тоже должен в файл поставить что-то типа
CODE:
<A href="<?php include $test=N; ?>" rel=nofollow>Страница N</A>

А в файле с переменными прописать
CODE:

$page=(int)$_HTTP['page'];
if (($page>=1) && ($page=<MAX)) include("page$page.php");

И тогда откроется стриница
CODE:
index.php?page=N

Я правильно понял?
И тогда опять таки как мне показать в каком файле у меня переменные?

Furax пишет:
и дальше воспользоваться средствами разбора XML. Рандомный выбор можешь и сам сделать. Кстати, если файлы действительно так проименованы - достаточно хранить только число этих bas'ов в каждом test'е. А вообще, мой тебе совет - заведи базу данных. Намного проще будет с тем, что ты навертел...

БД это БД и я не спорю что так то оно лучше но цели другие и возможности Улыбка
Хорошо, я понял что то что придумал сделать я, труднореализуемо, но может сделать тогда по другому? Я тут подсмотрел в одном месте такой вот код:
CODE:

<?
$config["datafile"] = "base.txt";
mt_srand ((float) microtime() * 1000000);
$fp = file($config["datafile"]);
$count = count($fp) - 1;
$ztext = $fp[mt_rand(0,$count)];
echo $ztext;

?>

И там где он стоит там как раз и идет рандомная выборка. Но там скрипт большой и я не могу разобраться с ним и понять что и как. Если тот код что я привел в пример и есть выборка по рандому, то это самодостаточный код или к нему надо что то еще? Если он самодостаточен, то как его перделать так чтоб привязать его к переменной напимер $test и поставить в единый файл с переменными а в теле страниц только переменную инклюдить. И будет ли он работать если у меня будет несколько разных переменный использующих рандом из разных баз? И как мне добиться того, чтоб этот код брал рандомом одну строку из файла целиком (файлы просто сверстаны уже так и весят по очень многу и переверстать их не реально).
И такой вопрос: можно ли сделать этот код так чтобы он был примерно таким:
CODE:

<?
$config["datafile1"] = "base1.txt";
$config["datafile2"] = "base2.txt";
...
$config["datafileN"] = "baseN.txt";
mt_srand ((float) microtime() * 1000000);
$fp = file($config["datafile"]);
$count = count($fp) - 1;
$ztext = $fp[mt_rand(0,$count)];
echo $ztext;

?>

Тобиш всетаки брал рандомом строку из случайного файла по списку... Просто рандом строки прогой под винду из файла в 15 метров грузит мой проц на 5-10%, чего уж говорить про php...
Зачем мне вообще все это надо? Вопрос сложный Улыбка Например есть у меня такая вот мулька:
ICQ 412660074 отправь на него /help и примерно поймеш Улыбка Эту штукуевину писал не я, ее автор MaxX, но я принимаю ю этом участие тоже и вот например там у меня сейчас рандомные и другие базы почти на 30 мб. А скоро MaxX доделает новый релиз и у меня под него готовы базы на 250 мб (там будет алгоритм изменен и как раз переменные добавленны).
Так вот тут у меня мысль примерно в том же направлении. Помоги мне пожалусто дописать код Улыбка
 
 Top
lift
Отправлено: 23 Июля, 2007 - 14:32:30
Post Id


Newbie


Покинул форум
Сообщений всего: 39
Дата рег-ции: Июль 2007  

Карма -7




По ходу дела возник еще вопрос:
В некоторых файлах скрипта есть куски с регулярными данными. Тоесть как посты в теме: код одинаковый у формы, а изменяемые данные задаются инклюдами и переменными. Сам код на этих кусках идентичен. Можно сделать так, чтбы написать его 1 раз а потом php функцией задать его повторение при запуске скрипта определенное количество раз? Типа такого
CODE:

<table>
Содержимое
</table>
Функция повторения содержимого таблици в выводимой странице 5 раз

Или лучше так не делать? Просто скрипт с одинм повтором весит 13 кб, а с несколькими уже под 90 кб. И таких скриптов несколько. И имеет ли смысл такое делать? Что лучше: упростить таким образом скрипт но немного больше нагрузить процессор при его выполнении или сделать без функции повтора более тяжелый скрипт но менее грузящй процессор? Да и будет ли грузицся процессор больше если таким образом облегчить скрипт?
 
 Top
TvoyWeb Администратор
Отправлено: 23 Июля, 2007 - 17:24:04
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




lift
для интерпритатора без разницы совсем весит файл скрипта 90 кило или 13. А вообще конечно, лучше статичные данные типа string записывать в переменную и потом выводить ее столько разв цикле сколько тебе надо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0472]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33