- 1
- 2
- 3
- 4
- 5
elseif (array_key_exists(pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION), $lang_array)) {
$language = pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION);
}
else
$language = 'en';
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+151
elseif (array_key_exists(pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION), $lang_array)) {
$language = pathinfo($_SERVER['HTTP_HOST'], PATHINFO_EXTENSION);
}
else
$language = 'en';
Из того же проекта, где зародился шаблонизатор.
Минималистичный файл-хостинг, который все решает за хозяина.
Конфиг - только папка хранения файлов и макс. объем.
А язык он определяет сам. По доменному имени. Каждый раз при обращении к странице.
+155
// Функция подключения файлов шаблонов -----------------------------------------------------------------
function tpl_include($filepath, $title = '', $content = '') {
global $lang, $lang_array;
$tpl_body = str_replace("\n", '', file_get_contents($filepath));
$tpl_body = preg_replace('#\{loop (.*?)\}(.*?)\{\/loop\}#i', "\nEOL;\nforeach (\\1 as \$var=>\$val) echo <<<EOL\n\\2\nEOL;\necho <<<EOL\n", $tpl_body);
$tpl_body = preg_replace('#\{const (.*?)\}#i', "\nEOL;\necho \\1;\necho <<<EOL\n", $tpl_body);
$to_eval = "echo <<<EOL\n".$tpl_body."\nEOL;\n";
eval($to_eval);
}
// -----------------------------------------------------------------------------------------------------
По следам http://govnokod.ru/5658.
Шаблонизатор этот жив и кочует из проекта в проект.
Можно ссылаться на переменные из массива $lang, где хранится локализация и на $title и $content. Вот так - {$title}.
Можно ссылаться на любые константы. Например, {const ROOT_PATH}.
Можно делать цикл {loop $array}{/loop}, где внутри доступны переменные {$var} и {$val}.
Полностью избавляет от шорт-тегов, которые скоро уже и уберут из похапе.
Работает лишь чуть медленнее include с шорт-тегами (0.8 против 1.2 на 10к прогонов) и, разумеется, быстрее Смарти.
При необходимости в каком-то проекте в чем-то еще - можно легко добавить.
В общем - изящное вонючее решение.
+157
// редиректим адреса без слеша на такие же со слешем
$uri = $_SERVER['REQUEST_URI'];
$is_file = false;
if ( (substr_count($uri,".php")>0) or (substr_count($uri,".html")>0) ) {
$is_file = true;
}
if ($is_file == false) {
$len_uri = strlen($uri);
// находим последнее вхождение слеша
$reverst_str = strrev($uri);
//die($reverst_str);
$last_slash = strpos($reverst_str,"/");
//die($last_slash);
if ($last_slash!==0) {
$uri .="/";
$status = "301 Found";
//header("Status: ".$status);
header('HTTP/1.1 301 Moved Permanently');
header("Location: http://www.thermostudio.ru"."$uri");
exit();
}
}
встретилось в проекте одном жаль автор не подписался, увековечить бы...
+154
function getDateFromTime($dataTime){
$strDate = date('d-m-Y', $dataTime);
$arrDate = explode('-', $strDate);
return mktime(0, 0, 0, $arrDate[1], $arrDate[0], $arrDate[2]);
}
руки-жопа-голова%)
+155
$arrParams = array();
$arrParams['table'] = array();
$arrParams['limit'] = 20;
$arrParams['table']['id'] = 'cmt_summary';
$arrParams['table']['class'] = 'comments';
$arrParams['table']['rows_id'] = 'cmt_{{comment_id}}';
$arrParams['table']['columns'] = array();
$arrParams['table']['columns']['comment_id'] = array();
$arrParams['table']['columns']['comment_id']['name'] = 'Comment ID';
$arrParams['table']['columns']['comment_id']['class'] = 'a';
$arrParams['table']['columns']['comment_id']['sort'] = true;
$arrParams['table']['columns']['comment_id']['search'] = array('type'=>'int');
$arrParams['table']['columns']['comment_id']['row'] = $sRowOutput;
$arrParams['table']['columns']['user_name'] = array();
$arrParams['table']['columns']['user_name']['name'] = 'Poster Username';
$arrParams['table']['columns']['user_name']['class'] = 'a';
$arrParams['table']['columns']['user_name']['sort'] = true;
$arrParams['table']['columns']['user_name']['search'] = array('type'=>'string');
$arrParams['table']['columns']['user_name']['row'] = $sRowOutput;
$arrParams['table']['columns']['email'] = array();
$arrParams['table']['columns']['email']['name'] = 'Poster Email';
$arrParams['table']['columns']['email']['class'] = 'a';
$arrParams['table']['columns']['email']['sort'] = true;
$arrParams['table']['columns']['email']['search'] = array('type'=>'string');
$arrParams['table']['columns']['email']['row'] = $sRowOutput;
Прошло уже почти 3 месяца как я сижу на проекте, а он не перестаёт меня удивлять :)
Глядя на эти строки думается что-то подобное было в головах у кодеров:
- Зачем юзать объекты, в массивы всё нормально ложится и они легче.
- По фиг что массивы не подхватывает ни одна IDE, Notepad++ всё ещё бесплатный, а большего в PHP и не надо.
- Зачем XML и XSD? Зачем это усложнение? Ну и что Ext4Yii хороший пример того как можно это сделать? Нам не нужны слабые духом программисты! :)
+155
// Это у них такой конфиг:
//--------------------------------------------------------------------------------------
// Определение дирректорий сервера
$siteDir = '';
$DIR = array(
'root' => $_SERVER['DOCUMENT_ROOT'].$siteDir,
);
$DIR['HOST'] = 'http://'.$_SERVER['HTTP_HOST'];
$DIR['media'] = $DIR['root'].'/media/';
$DIR['theme'] = $DIR['root'].'/themes/';
$DIR['lib'] = $DIR['root'].'/lib/';
$DIR['script'] = $DIR['root'].'/scripts/script.';
// А это у них такая мвц
// при error_reporting(E_ALL) - таааакая знатная жопа
//---------------------------------------------------------------//
/* Организация простейшего MVC */
//---------------------------------------------------------------//
//Загружаем модель для формированния данных
if(file_exists($DIR['script'].$Page.'.php'))
require_once($DIR['script'].$Page.'.php');
//Загрузка шаблона для отоброжения данных
require_once($DIR['theme'].'default.php');
Ща сижу на собеседование, попросили сделать пару страничек, используя местные порядки.
Сижу в шоке.
+160
<?php
function antihack(&$var){
if(is_array($var)) array_walk($var, 'antihack');
else $var = htmlspecialchars(stripslashes(mysql_real_escape_string($var)), ENT_QUOTES, 'UTF-8');
}
foreach(array('_SERVER', '_GET', '_POST', '_COOKIE', '_REQUEST') as $v){
if(!empty(${$v})) array_walk(${$v}, 'antihack');
}
?>
http://homephp.ru/phpcode/index.php?system=bild&stat=173445591-534250613&
+151
<?php
else {
fwrite($fp,"\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00".chr(10));
$start=time();
socket_set_timeout($fp,1);
$st=fread($fp,1);
$r=socket_get_status($fp);
$r=$r["unread_bytes"];
$st.=fread($fp,$r);
fclose($fp);
$st=substr($st,5);
$address=SubStr($st,0,StrPos($st,chr(0)));
$address=str_replace(chr(0),"|",$address);
$st=SubStr($st,StrPos($st,chr(0))+1);
$name=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$map=SubStr($st,0,StrPos($st,chr(0)));
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$st=SubStr($st,StrPos($st,chr(0))+1);
$current=ord(SubStr($st,0,1));
$max=ord(SubStr($st,1,1));
}
if ($_GET['info'] == "map")
{
echo "document.write('$map');";
}
if ($_GET['info'] == "players")
{
if ($current == "0")
{
echo "document.write('<font color=red>$current</font>/$max');";
}
else
{
if($current == $max)
{
echo "document.write('<font color=00FF00>$current</font>/$max');";
}else{
echo "document.write('$current/$max');";
}
}
}
if ($_GET['info'] == "map-img")
{
echo "document.write('<img width=$width border=0 src=http://image.www.gametracker.com/images/maps/160x120/cs/$map.jpg>');";
}
if ($_GET['info'] == "source-map")
{
echo "document.write('$name');";
}
if ($_GET['info'] == "block1")
{
echo "document.write('<table border=0><tr><td align=center><marquee>$name</marquee><br><img width=160px height=120px style=background:url(http://www.agrank.com/images/maps/210_150/_offline.jpg); border=0 src=http://image.www.gametracker.com/images/maps/160x120/cs/$map.jpg><br>Map - $map<br>Players - <script language=JavaScript src=http://game-monitoring.tk/ucoz/cs-info.php?ip=$ip&port=$port&info=players></script><br><br><center><input value=$ip:$port readonly=readonly onclick=f2(this); class=f_linput type=text></center></td></tr></table>');";
}
if ($_GET['info'] == "block4")
{
}
?>
Мало ли того, что гавнокод, так ещё и SubStr. аха
+154
<?php
if (isset($_POST['update'])) {
$kolcen=mysql_real_escape_string($_POST['kolcen']);
$tovar=mysql_real_escape_string($_POST['tovar']);
$descr=mysql_real_escape_string($_POST['descr']);
$price=intval($_POST['price']);
$price2=intval($_POST['price2']);
$price3=intval($_POST['price3']);
$id=intval($_POST['update']);
$zag1=mysql_real_escape_string($_POST['zag1']);
$zag2=mysql_real_escape_string($_POST['zag2']);
$zag3=mysql_real_escape_string($_POST['zag3']);
switch($kolcen){
case '3':$updatetovar = mysql_query ("UPDATE `tovar3` SET `tovar`='$tovar',`descr`='$descr',`price`='$price',`price2`='$price2',`price3`='$price3' WHERE `id`='$id' and `id`='$serv'");
break;
case '2': $updatetovar = mysql_query ("UPDATE `tovar2` SET `tovar`='$tovar',`descr`='$descr',`price`='$price',`price2`='$price2' WHERE `id`='$id' and `id`='$serv'");
break;
case '1':$updatetovar = mysql_query ("UPDATE `tovar` SET `tovar`='$tovar',`descr`='$descr',`price`='$price' WHERE `id`='$id' and `pizzaid`='$service'");
break;
case '2images': $updatetovar = mysql_query ("UPDATE `2images` SET `tovar`='$tovar',`descr`='$descr',`price`='$price',`price2`='$price2',`price3`='$price3',`img`='$img',`zag1`='$zag1',`zag2`='$zag2',`zag3`='$zag3' WHERE `id`='$id' and `id`='$serv'");
break;
}
?>
Народ зацените мой код плиз на предмет говнокода, и если чето не так то дайте совет . Этот код для админки добавления товаров. Есть 4 типа категорий, товар с одной ценой, с двумя, с тремя, и товар с двумя картинками. В зависимости от типа категории делаем запрос к базе
+159
protected function readConfig($configPath) {
$ini = parse_ini_file($configPath);
foreach ($ini as $key => $value) {
$config[$key] = $value;
}
return $config;
}