[PHP] Как лучше написать скрипт?

123
[umka]
На сайте с 25.05.2008
Offline
456
#11
LEOnidUKG:
Можно глупый вопрос? А зачем вообще это на функциях делать? Это какой-то + в карму или что?

Человек познаёт окружающий мир :)

Надо же всё попробовать и выбрать лучшее )

Лог в помощь!
O
На сайте с 29.05.2008
Offline
195
#12

global $conf;

/*Определяем браузер по UserAgent*/
if ((substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')) and (substr_count($_SERVER['HTTP_USER_AGENT'], '6.0')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'MSIE6';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')) and (substr_count($_SERVER['HTTP_USER_AGENT'], '7.0')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'MSIE7';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')) and (substr_count($_SERVER['HTTP_USER_AGENT'], '8.0')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'MSIE8';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')) and (substr_count($_SERVER['HTTP_USER_AGENT'], '9.0')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'MSIE9';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'MSIE')) and (substr_count($_SERVER['HTTP_USER_AGENT'], '10.0')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'MSIE10';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'Chrome')) and (substr_count($_SERVER['HTTP_USER_AGENT'], 'AppleWebKit')) and (substr_count($_SERVER['HTTP_USER_AGENT'], 'Gecko')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'chromeframe'))) {$browser = 'Chrome';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'Opera')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'Symbian')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'J2ME')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'HTC')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'MOT')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'SAMSUNG'))) {$browser = 'Opera';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'Firefox')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'Opera')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'HTC'))) {$browser = 'Firefox';}
elseif ((substr_count($_SERVER['HTTP_USER_AGENT'], 'Safari')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'Chrome')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'iPhone')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'Mobile')) and (!substr_count($_SERVER['HTTP_USER_AGENT'], 'Nokia'))) {$browser = 'Safari';}
else {$browser = 'Unknown';}
/*Записываем ошибки в лог файл*/
function errors_logging($error = 0) {
global $conf;
$IP = $_SERVER['REMOTE_ADDR'];
$port = $_SERVER['REMOTE_PORT'];
$request_method = $_SERVER['REQUEST_METHOD'];
$request_url = 'http://';
$request_url .= $_SERVER['HTTP_HOST'];
$request_url .= $_SERVER['REQUEST_URI'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if ($_SERVER['HTTP_COOKIE']) {
$cookie = "\n";
$cookie .= $_SERVER['HTTP_COOKIE'];
}
$date_format = date("dmY");
$time_format = date("H:i:s");
$error = str_replace("<br>", ". ", $error);
$error = "[$time_format $error\n$IP:$port $request_method $request_url\n$user_agent$cookie] \n\n";
if (!@opendir("$conf[logs_dir]/errors")) {
mkdir("$conf[logs_dir]/errors");
}
$file = "$conf[logs_dir]/errors/$date_format.log";
$fopen_id = fopen($file, a);
fputs($fopen_id, "$error");
fclose($fopen_id);
}
/*Устанавливаем кодировку для HTML документов*/
function charset() {
global $conf;
if (!$conf[charset]) {$charset = 'utf-8';}
else {$charset = $conf[charset];}
echo '<meta charset="';
echo "$charset";
echo '">';
echo "\n";
}
/*Устанавливаем скрипт поддержки HTML5 для браузеров, которые его не поддерживают*/
function html5_ie_support() {
global $conf;
global $browser;
if (($browser == MSIE6) xor ($browser == MSIE7) xor ($browser == MSIE8)) {
if (is_file("$conf[jscripts_dir]/html5.js")) {
echo '<script src="';
echo "$conf[jscripts_dir]/html5.js";
echo '"></script>';
echo "\n";
}
else {global $lang; $GLOBALS[error] = $lang[error_can_include_js]; include "$conf[kernel_dir]/error.php"; exit();}
}
}
/*Устанавливаем файл стилей в зависимости от правил*/
function stylesheet_file($custom_stylesheet_file = 0) {
global $conf;
global $browser;
if (!$custom_stylesheet_file) {
if (($browser == MSIE6) xor ($browser == MSIE7) xor ($browser == MSIE8) xor ($browser == Unknown)) {$stylesheet_file = $conf[stylesheet_without_css3];}
else {$stylesheet_file = $conf[stylesheet_with_css3];}
}
else {$stylesheet_file = $custom_stylesheet_file;}
if (is_file("$conf[stylesheet_dir]/$stylesheet_file")) {
echo '<link rel="stylesheet" href="';
echo "$conf[stylesheet_dir]/";
echo "$stylesheet_file";
echo '">';
echo "\n";
}
}
/*Подгружаем файлы шаблона*/
function template($file, $before_file = false, $after_file = false) {
if ($before_file) echo "<$before_file>\n";
global $conf;
$file = "$conf[templates_dir]/$conf[current_template]/$file.php";
if (is_file("$file")) {
@include("$file");
echo "\n";
}
if ($after_file) echo "</$after_file>\n";
}
/*Устанавливаем Favicon*/
function favicon() {
global $conf;
if (($conf[favicon]) and (is_file($conf[favicon]))) {echo '<link rel="shortcut icon" href="'; echo "$conf[favicon]"; echo'">'; echo "\n";};
}
/*Переадрисовываем на корректную страницу при ошибках*/
function redirect_if_error($enabled = 0) {
global $conf;
if (($conf[error_redirect_interval]) and ($enabled)) {echo '<meta http-equiv="refresh" content="'; echo "$conf[error_redirect_interval]"; echo '; url='; echo "$conf[host]"; echo "$conf[index_url]"; echo '">'; echo "\n";};
}

Вот пример функций.

ortegas добавил 26.05.2011 в 21:48

Просто я хочу гибкости и простоты в то же время.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#13
ortegas:
LEOnidUKG, а как? Классы я пока, что не учил. Хочу закрепить урок.
Чтобы код не засорять и выполнять в зависимости от условий.
Я пока, что профан. Кто уже имеет опыт, поделитесь. А то когда пишешь скрипт уча PHP запоминается лучше. Боюсь, чтобы потом все не переписывать :).

В смысле как? Обычным PHP кодом. Вызываете участок который нужен и всё.

LEOnidUKG добавил 26.05.2011 в 21:56

'[umka:
;8997325']Человек познаёт окружающий мир :)
Надо же всё попробовать и выбрать лучшее )

Как бы потом это "попробовать" не вышло боком. Я вообще по началу функции то не использовал т.к. не знал зачем они, а тут лепят во все дыры их.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
O
На сайте с 29.05.2008
Offline
195
#14
LEOnidUKG:
В смысле как? Обычным PHP кодом. Вызываете участок который нужен и всё.

А как же гибкость? Если код не выполняется зачем он в странице? Пускай лучше будет в файле функций и в файле классов. Я могу ошибаться, но лучше пользоваться парой Major системных файлов и выводить ошибку при их ошибке, либо разбросать системный код по всех файлах и потом собирать ошибки по коду страницы.

ortegas добавил 26.05.2011 в 22:01

LEOnidUKG:
а тут лепят во все дыры их

Вы наверное CMS IP.Board не видели.. Вот там перебор.. Одна папка Kernel чего стоит).

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#15
ortegas:
А как же гибкость? Если код не выполняется зачем он в странице?

Простите, что что? А в условие код поставить никак? Или у вас ещё наверное комментарии к коду на производительность влияют? :)

O
На сайте с 29.05.2008
Offline
195
#16
LEOnidUKG:
Простите, что что? А в условие код поставить никак? Или у вас ещё наверное комментарии к коду на производительность влияют?

А потом чесать голову и думать, что же это условие значит? Вот приставьте, если бы в CMS WordPress вместо шаблона, модулей, сразу все цитировалось через if-else в index.php ..

ortegas добавил 26.05.2011 в 22:10

..к тому же функция может изменять свои значения.. На одной странице вызываем с 1 атрибутов, на второй с другим. И код чистый и голова не болит.. И если отключил функцию в конфе, не надо потом if else эти менять в каждом файле, а сразу отключится во всех файлах, кои используют функцию.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#17
ortegas:
А потом чесать голову и думать, что же это условие значит? Вот приставьте, если бы в CMS WordPress вместо шаблона, модулей, сразу все цитировалось через if-else в index.php ..

ortegas добавил 26.05.2011 в 22:10
..к тому же функция может изменять свои значения.. На одной странице вызываем с 1 атрибутов, на второй с другим. И код чистый и голова не болит.. И если отключил функцию в конфе, не надо потом if else эти менять в каждом файле, а сразу отключится во всех файлах, кои используют функцию.

Да мы сейчас не WP и т.п. обсуждаем, а ваш хиленький и страшный код :)

O
На сайте с 29.05.2008
Offline
195
#18
LEOnidUKG:
Да мы сейчас не WP и т.п. обсуждаем, а ваш хиленький и страшный код

Ну напишите лучше, а я поучусь. ;)

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#19
ortegas:
Ну напишите лучше, а я поучусь. ;)

Книжку по PHP любую откройте и почитайте, как там формы создаются и как обрабатывается.

php.developer
На сайте с 22.11.2010
Offline
94
#20

ortegas, Вы функции используете не по назначению. Вам это пытаются объяснить.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий