- 1
- 2
- 3
- 4
- 5
- 6
- 7
$str="T:/home//localhost///MyScripts/////";
$pos=strpos($str,"//");
while($pos!=false)
{
$str=str_replace("//","/",$str);
$pos=strpos($str,"//");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
$str="T:/home//localhost///MyScripts/////";
$pos=strpos($str,"//");
while($pos!=false)
{
$str=str_replace("//","/",$str);
$pos=strpos($str,"//");
}
функция удаляет повторяющиеся слэши в строке
+161
<?php
define('PATH_LEN', 32);
define('ALPH_SIZE', 66);
class Security
{
public static $rus_alphabet = array('А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', 'Ю', 'ю', 'Я', 'я');
public static $eng_alphabet = array('A', 'a', 'B', 'b', 'V', 'v', 'G', 'g', 'D', 'd', 'E', 'e', 'Yo', 'yo', 'Zh', 'zh', 'Z', 'z', 'I', 'i', 'Ji', 'ji', 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', 'P', 'p', 'R', 'r', 'S', 's', 'T', 't', 'Y', 'y', 'F', 'f', 'H', 'h', 'C', 'c', 'Ch', 'ch', 'Sh', 'sh', 'Ch', 'ch', '_', '_', '_', '_', '_', '_', '_', '_', 'U', 'u', 'Ya', 'ya');
static public function Transform($string)
{
$string = htmlspecialchars($string);
$string = strip_tags($string);
return $string;
}
static public function TransformName($string)
{
$temp = '';
for($i = 0; $i < strlen($string); $i++)
{
if($string[$i] === ' ')
{
$temp += '_';
continue;
}
for($j = 0; $j < ALPH_SIZE; $j++)
if(Security::$rus_alphabet[$j] === Security::$string[$i])
{
$temp += Security::$eng_alphabet[$j];
continue 2;
}
$temp += $string[$i];
}
return $temp;
}
}
?>
+173
$pattern = '/[^A-Za-zА-Яа-я0-9]/u';
$phrase = $this->data['ProjectsPhrase']['phrase'];
$phrase = preg_replace($pattern, ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = str_replace(' ', ' ', $phrase);
$phrase = trim($phrase);
Вот такое говнокодище встретил в проекте. Паранойя такая паранойя…
+144
Вопрос...
Ребят, у меня такой вопрос, тут или посмейтесь, или скажите как правельней, сайт не для вопросов согласен, но помогите не говнакодить)))
Ядро системы у меня, сканирует директории модулей и плагинов таким образом что у имени деректории есть префикс mod and plg где если это модуль то вот имя директории mod[news], нет оно всё не в куче разумеется, порядок соблюдаю разумеется, но и исправить метод можно не проблема, но я пишу это к чему, недавно готовый сайт выложил на хостинг на котором ранее небыл, и всё конечно идеально, за исключением одного нюанса, FTP менеджеры не могут сканировать директории в имене которых находятся знаки [ ] и только единственный менеджер может сканировать отлично это FAR... И у меня просьба, посмеятся какой я дурак если это реально проблема, или это плюсом, что важные директории проблемно прочитать? Работа системы проходит на ура хоть где не в этом вопрос, а именно имена директорий с знакоми [ ], и проблема их сканировать из "ВНЕ"... Стоит ли их переименовывать?
+163
<?php
if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
sleep(3);
if($_POST[parent_id]) $parent_id = preg_replace('/\D+/i','', $_POST[parent_id]);
else $parent_id = 0;
$author = trim($_POST[author]);
$comment = trim($_POST[comment]);
if(!$author) $error[author] = 'Введите имя!';
if(!$comment) $error[comment] = 'Напишите комментарий!';
if($error)
exit(json_encode($error));
require_once 'blocks/bd.php';
$sql = "INSERT INTO comments (parent_id, name, comment, date_add) VALUES ($parent_id, '$author', '$comment', NOW())";
$result = mysql_query($sql);
if(!$result)
{
$error[] = 'Произошла ошибка, комментарий не сохранен';
exit(json_encode($error));
}
exit();
}
?>
+158
public function search() {
$ret = array();
foreach($this->dir() as $file)
if($file->folder())
$ret = array_merge($ret,$file->search()->asArray());
else
$ret[] = $file;
return new mod_file_list($ret);
}
Красота, в результате работы функции мы получаем объект, состоящий из массива объектов класса file (этот метод в этом классе)... "чудо-поиска" (хотя это вовсе и не поиск, а банальный список файлов всех дочерних папок), особенно будет забавно, если в списке будет несколько тысяч файлов...
В этом классе в принципе много мест, которые наровят насоздавать кучу экземпляров этого же класса, вместо замены одной приватной переменной...
+162
public static function perform($table, $data, $action = 'insert', $parameters = '') {
reset($data);
if ($action == 'insert') {
$query = 'INSERT INTO ' . $table . ' (';
while (list($columns, ) = each($data)) {
$query .= $columns . ', ';
}
$query = substr($query, 0, -2) . ') values (';
reset($data);
while (list(, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= 'NOW(), ';
break;
case 'null':
$query .= 'NULL, ';
break;
default:
$query .= '\'' . mysql_escape_string($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ')';
} elseif ($action == 'update') {
$query = 'UPDATE ' . $table . ' SET ';
while (list($columns, $value) = each($data)) {
switch ((string)$value) {
case 'now()':
$query .= $columns . ' = NOW(), ';
break;
case 'null':
$query .= $columns .= ' = NULL, ';
break;
default:
$query .= $columns . ' = \'' . mysql_escape_string($value) . '\', ';
break;
}
}
$query = substr($query, 0, -2) . ' WHERE ' . $parameters;
}
self::request($query);
}
Вот так у нас вставляют в базу :)
+159
$this->setLayout('empty');
$this->setTemplate('step3');
if ($this->getBrokerId() == 19 || $this->getBrokerId() == 29)
{
$this->setLayout('empty');
$this->setTemplate('step3');
$this->brokerId = $this->getBrokerId();
}
Нашел в чужом проекте. При этом $this->getBrokerId() не просто возвращает переменную, а производит сравнение строк (то есть вызывать этот метод 3 раза - явный перебор).
+159
$ar=$arFields['GROUP_ID'];
$arFields['GROUP_ID']=array();
foreach($ar as $a) $arFields['GROUP_ID'][]=$a;
Смысл данной конструкции не ясен, если так нужно обнулить ключи для массива то array_values() в помощь.
+164
<?php
class Gcont extends Controller {
// ...
function gcont(){
$this->load->model('am_loader');
$title = $this->am_loader->gettitle();
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"';
echo '<html xmlns="http://www.w3.org/1999/xhtml">';
echo '<head><title>'.$title.'</title>';
// ...
$this->load->view('gcont');
}
}
Суровая генерация контента нубом из контроллера MVC.