- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
public static function checkWriteToTorrentPath($path)
{
if (file_put_contents($path.'file.txt', ' '))
{
unlink($path.'file.txt');
return TRUE;
}
else
return FALSE;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+158
public static function checkWriteToTorrentPath($path)
{
if (file_put_contents($path.'file.txt', ' '))
{
unlink($path.'file.txt');
return TRUE;
}
else
return FALSE;
}
is_writable ? Не, не слышал!
https://github.com/ElizarovEugene/TorrentMonitor/blob/master/class/System.class.php#L48 Эпик!
+151
if (anidub::$exucution)
{
//получаем страницу для парсинга
$page = anidub::getContent($torrent_id, anidub::$sess_cookie);
if ( ! empty($page))
{
//ищем на странице дату регистрации торрента
if (preg_match("/<td width=\"\" class=\"heading\" valign=\"top\" align=\"right\">Добавлен<\/td><td valign=\"top\" align=\"left\">(.*)<\/td>/", $page, $array))
{
//проверяем удалось ли получить дату со страницы
if (isset($array[1]))
{
//если дата не равна ничему
if ( ! empty($array[1]))
{
//сбрасываем варнинг
Database::clearWarnings($tracker);
//приводим дату к общему виду
$date = $array[1];
$date_str = anidub::dateNumToString($array[1]);
//если даты не совпадают, перекачиваем торрент
if ($date != $timestamp)
{
preg_match('/<a href=\"download\.php\?id=(\d{2,6})&name=(.*)\">/U', $page, $array);
$torrent_id = $array[1];
$torrent_id_name = $array[2];
//сохраняем торрент в файл
$torrent = anidub::getTorrent($torrent_id, $torrent_id_name, anidub::$sess_cookie);
$client = ClientAdapterFactory::getStorage('file');
$client->store($torrent, $id, $tracker, $name, $torrent_id, $timestamp);
//обновляем время регистрации торрента в базе
Database::setNewDate($id, $date);
//отправляем уведомлении о новом торренте
$message = $name.' обновлён.';
Notification::sendNotification('notification', $date_str, $tracker, $message);
}
}
else
{
//устанавливаем варнинг
if (anidub::$warning == NULL)
{
anidub::$warning = TRUE;
Errors::setWarnings($tracker, 'not_available');
}
//останавливаем процесс выполнения, т.к. не может работать без кук
anidub::$exucution = FALSE;
}
}
else
{
//устанавливаем варнинг
if (anidub::$warning == NULL)
{
anidub::$warning = TRUE;
Errors::setWarnings($tracker, 'not_available');
}
//останавливаем процесс выполнения, т.к. не может работать без кук
anidub::$exucution = FALSE;
}
}
else
{
//устанавливаем варнинг
if (anidub::$warning == NULL)
{
anidub::$warning = TRUE;
Errors::setWarnings($tracker, 'not_available');
}
//останавливаем процесс выполнения, т.к. не может работать без кук
anidub::$exucution = FALSE;
}
}
else
{
//устанавливаем варнинг
if (anidub::$warning == NULL)
{
anidub::$warning = TRUE;
Errors::setWarnings($tracker, 'not_available');
}
//останавливаем процесс выполнения, т.к. не может работать без кук
anidub::$exucution = FALSE;
}
}
Классическая лесенка пыхомакаки.
+153
$object = __CLASS__;
self::$instance = new $object;
+149
preg_match_all('/<td class=\"f\">\n\t\t\t\t\n\t\t\t\t\t(.*)\n\t\t\t\t<\/td>/', $page, $section)
https://github.com/ElizarovEugene/TorrentMonitor/blob/master/trackers/tfile.me.search.php#L34
ну и много всякой другой вкуснятины
+156
if( SITE == 'http://dev.example.com' ) die( file_get_contents( 'http://www.example.com/error.php?error=xml' ) );
die( file_get_contents( SITE.'/error.php?error=xml' ) );
некоторые 404-ую выводят вот так
+146
getInsideText($part1[0],'<string>','</string>',1,true);
function getInsideText($str,$fstr,$lstr,$limit=0,$trim=true){
$temp_arr=array();
$lcnt=0;
while(strpos($str,$fstr)!==false && ($limit ? $lcnt<$limit : true)){
$fpos=($fstr ? strpos($str,$fstr)+strlen($fstr) : 0);
$str=substr($str,$fpos);
$lpos=strpos($str,$lstr);
$val=($lpos!==false ? substr($str,0,$lpos) : $str);
$temp_arr[]=($trim ? trim($val) : $val);
$str=substr($str,$lpos+strlen($lstr));
$lcnt++;
}
return ($limit==1 ? (isset($temp_arr[0]) ? $temp_arr[0] : '') : $temp_arr);
}
Конечный автомат своими силами.
+149
$ev = '$atHtml[] = template::translateTemplate('.$atArr[0].'::getHTML($atArr[1]));';
eval($ev);
Самый простой способ заставить работать статический метод класса из переменной в PHP ниже 5.3.
+157
function _subqery_helper ($uri){
static $i;
$i++;
if ((is_array($uri)) && (!empty($uri))) {
$keyword = array_pop($uri); //извлекаем последний элемент
if ($i==1)
{
$subqery = 'AND item.keyword= '.$this->db->escape($keyword).' '.(count($uri)? 'AND parent IN
('.$this->_subqery_helper($uri).')' : '');
}
elseif ($i > 1)
{
$subqery = 'SELECT id FROM '.$this->db->dbprefix($this->table).' WHERE keyword = '.$this->db->escape($keyword).' AND parent '.(count($uri)? 'IN
('.$this->_subqery_helper($uri).')' : ' = 0');
}
}
return $subqery;
}
массив $url очень простой:
1=>"str1",2=>"str2",3=>"str3"
это непонятная итерационная функция, которая вообще непонятно зачем такая сложная....
+159
$threadusers = $db->query_read("
SELECT user.username, user.usergroupid, user.membergroupids,
session.userid, session.inthread, session.lastactivity, session.badlocation,
IF(user.displaygroupid = 0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid,
IF(user.options & " . $vbulletin->bf_misc_useroptions['invisible'] . ", 1, 0) AS invisible
FROM " . TABLE_PREFIX . "session AS session
LEFT JOIN " . TABLE_PREFIX . "user AS user ON(user.userid = session.userid)
WHERE session.lastactivity > $datecut
");
...
while ($loggedin = $db->fetch_array($threadusers))
Я уже несколько раз писал о гениальности ребят которые пишут форум vBulletin. Продолжу эту традицию.
Выше приведен огрызок кода, которым ребятки собирают список активных пользователей в текущей теме. Думаю тут все понятно, но все же объясню на примере того форума, где довелось увидеть это чудо. В таблице session около 7к записей, активных записей в среднем 4к. Т.е. на выходе мы имеем запрос, который кладет сервак при 64 гигах оперативы + последовательный перебор 4к записей для того что бы выбрать парочку юзеров, которые активны в этой теме.
Ну в общем ребятки поставили себе прижизненный памятник, который я спешу предоставить на лицезрение сообщества.
+152
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<head>
<title>test</title>
<script type="text/javascript">
// Функция, осуществляющая AJAX запрос
function loadXMLDoc(method, url) {
if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open(method, url, true);
req.send(null);
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = processReqChange;
req.open(method, url, true);
req.send();
}
}
// Функция, выполняемая при изменении статуса
// запроса, если статус равен 200, данные получены
function processReqChange() {
if(req.readyState == 4) {
if(req.status == 200) {
getNumber(req.responseText);
} else {
alert("There was a problem retrieving the XML data:\n" + req.statusText);
}
}
}
// Функция выполняется при клике по кнопке
function process() {
var v = document.getElementById("flag");
var url = "ajax.php?flag=" + v.checked;
loadXMLDoc( "get", url );
setTimeout('process()', 1000);
}
// Функция записывает в элемент content значение, полученное от сервера
function getNumber(text) {
//для текстового поля
var content = document.getElementById( "content" );
content.value = text;
//для div
var content = document.getElementById( "content2" );
content.innerHTML = text;
}
</script>
</head>
<body onload='process()'>
<input type='checkbox' id='flag'>Флажок
<input type='text' id='content'>
<div id='content2'></div>
</body>
</html>
.....................................................................................
//файл ajax.php
<?php
if (isset($_GET['flag']))
{
if($_GET['flag']==='true') echo 'checked';
else echo 'not checked';
}
?>
Как скопировать значение одного поля в другое.
Очередное оригинальное решение от нашего старого знакомого, который не верит в существование говнокода и быдлокодеров.