Mostom
Newbie-
Posts
27 -
Joined
-
Last visited
Mostom's Achievements
Explorer (1/14)
0
Reputation
-
Функция, возвращающая расширение файла (параметр - имя файла) function return_ext($filename){ return strtolower(array_pop(explode(".", $filename))); } Чтобы не было проблем с русскими буквами, нужно обрабатывать имена файлов, например транслитеровать, а символы "_" заменять чем-нибудь другим... Функция транслитерации: function transliterator($totrans){ $transliterator=Array("а" => "a", "б" => "b", "в" => "v", "г" => "g", "д" => "d", "е" => "e", "?" => "e", "ж" => "j", "з" => "z", "и" => "i", "й" => "i", "к" => "k", "л" => "l", "м" => "m", "н" => "n", "о" => "o", "п" => "p", "р" => "r", "с" => "s", "т" => "t", "у" => "u", "ф" => "f", "х" => "h", "ц" => "c", "ч" => "ch", "ш" => "sh", "щ" => "sch", "ъ" => "", "ы" => "y", "ь" => "", "э" => "e", "ю" => "yu", "я" => "ya", "А" => "a", "Б" => "b", "В" => "v", "Г" => "g", "Д" => "d", "Е" => "e", "?" => "e", "Ж" => "j", "З" => "z", "И" => "i", "Й" => "i", "К" => "k", "Л" => "l", "М" => "m", "Н" => "n", "О" => "o", "П" => "p", "Р" => "r", "С" => "s", "Т" => "t", "У" => "u", "Ф" => "f", "Х" => "h", "Ц" => "c", "Ч" => "ch", "Ш" => "sh", "Щ" => "sch", "Ъ" => "", "Ы" => "y", "Ь" => "", "Э" => "e", "Ю" => "yu", "Я" => "ya", " " => "-" "_" => "-" ); return strtr($totrans, $transliterator); }
-
Мнфсруыдфм Делайте, как вам удобнее. Советую посмтреть исходники phpBB, IPB, vBulletin - как это реалзиовано там. Над ними ведь тоже не дураки работают, и если они сделали так или иначе, то на это, наверное, нашилсь свои причины...
-
Хе, ну вот вам еще один вариант. В отдельном поле храните последовательность BB-тегов для каждого сообщения форума. Сами комменты франите в HTML, как положено, с обычными . Далее, когда будете HTML преобразовывать назад в BB-код, то заменяете каждый HTML-тег соответсвующим BB-тегом из сохраненной последовательности. Пример: Это жирный шрифт, а это подчеркнутый В BB-тегах: Это |b|жирный шрифт|/b|, а это |u|подчеркнутый|/u| В базе в HTML-тегах: Это жирный шрифт, а это подчеркнутый Поле с последовательностью BB-тегов: |b|,|/b|,|u|,|/u| Подобный метод займет гораздо меньше места в базе, чем хранение сообщений в двух экземплярах. Чтобы извлечь BB-теги из сообщения во время его отправки, достаточно один раз пройтись по строке - сложность алгоритма - линейная. При преобразовании из HTML в BB, BB-теги можно получить, допустим, так: $bbtags = explode(',', $bbsequence); Подумайте над этим..
-
Я бы посоветовал вам такое решение. Выражение, например |u| подчеркнутый текст |/u| хранить в базе в виде подчеркнутый текст class="underlined"> В общем, в закрывающем теге прописать - к чему он относится. Варианты: underlined> u> Я проверял - работает. Плюсы: не нужно хранить два формата не нужно использовать regexp - можно обойтись и str_replace Минусы: противоречие спецификации (я думаю)..
-
Честно говоря, Evgeny, я не понял ничего из того кода, что вы написали. Однако по поводу шаблонизатора я с Вами согласен - я вовсе не настаиваю на своем варианте.
-
2 Scrum Спасибо... я не проверял то, что писал, т.к. смысл был - показать принцип. 2 Gorik А, ну смотрите тогда. Если все страницы посторены по одному принципу, то делаете следующее: В файле functions.php пишите: <?php function Heading($pagename,$pagedescription,$pagekeywords){ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'; echo '<html>'; echo '<head>'; echo '<link rel=stylesheet type=text/css href=style.css>'; echo '<title>Сайт такой-то - '.$pagename.'</title>'; echo '<meta http-equiv=Content-Type content="text/html; charset=windows-1251">'; echo '<meta http-equiv=Description content=".$pagedescription.">'; echo '<meta http-equiv=Keywords content=".$pagekeywords.">'; echo '</head>'; echo '<body>'; // И далее размещаете шапку сайта - заголовок, и т.п. } function Menu(){ echo '<a href=index.php>Вернуться на главную</a>'; // ссылки, оформленные так же, как у вас в меню } function Footing(){ // низ страницы echo '</body></html>'; } ?> Далее, типичная страница будет выглядеть следующим образом: <?php require_once('functions.php'); Heading('Главная','Главная страница моего сайта','главная, ключевые, слова'); Menu(); ?> Тут непосредсвтенно содержимое страницы.. <?php footing(); ?> Примерно так. Смысл в том, что после подключения всех этих функция, в бразуере получается цельная страница, которую мы составляем по кусочкам.. Мне кажется - это самый простой вариант, хотя у него масса недостатков. Однако по простоте он идеален, подобный "движок" можно написать даже на JavaScript..
-
Складывается ощущение, что товарищу Gorik кто-то на другом форуме подсказал, как организовать работу сайта, и теперь он пришел сюда за разъяснениями.
-
Почему бы и нет? Честно говоря, смутно понимаю, для чего нужен код, который описал Gorik.. Файл switch.php <?php switch($id){ case 1: include_once('имя файла'); default: include_once('main.php'); } ?> и потом в самой стрнице: <? $id = $_GET["id]; ?> потом все ссылки меню прописываете <a href="index.php?id=1">пункт1</a> и наконец - таблица отвечающая за основную часть главной страницы: <table><tr><td> <?php require_once(switch.php); ?> </td></tr></table> Не проверял, но должно работать.. Вообще я бы сделал даже так: functions.php function toswitch($id){ switch($id){ case 1: return 'имя_файла'; default: return 'main.php'; } } И потом непосредственно на странице делать так: <? require('functions.php'); ?> потом все ссылки меню прописываете <a href="index.php?id=1">пункт1</a> и наконец - таблица отвечающая за основную часть главной страницы: <table><tr><td> <?php include_once(toswitch($_GET['id'])); ?> </td></tr></table> Мне кажется, что так изящнее, хотя это дело вкуса.
-
Лучше отдельно, а потом подключать файл co switch (require()). Так если вдруг switch придется изменять, не нужно будет редактировать все страницы.
-
Ну например так: head.php: <?php echo '<html>'; echo '<head><title>Page</title></head>'; echo '<body>'; ?> foot.php <?php echo '</body>'; echo '</html>'; ?> index.php <?php include('head.php'); echo('Содержимое страницы'); include('foot.php'); ?>
-
И вы нам тут голову морочили?? Больше никогда так не делайте!
-
Вы хотите сказать, что сначала просто страницу открывали? А потом решили через браузер набрать http://localhost/...
-
Не знаю, как у Вас, но у меня нет столько времени, чтобы настраивать Apache и PHP. К тому же я не располагаю таким интернетом, чтобы скачивать вс? это поотдельности. Денвер гораздо удобнее, и весит мало, а если ручки не оттуда растут (как у меня), то Денвер - лучший друг программиста.