- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
<?php
define('BOT_TOKEN', '12345678:replace-me-with-real-token');
define('API_URL', 'https://api.telegram.org/bot'.BOT_TOKEN.'/');
function apiRequestWebhook($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
return false;
}
$parameters["method"] = $method;
header("Content-Type: application/json");
echo json_encode($parameters);
return true;
}
function exec_curl_request($handle) {
$response = curl_exec($handle);
if ($response === false) {
$errno = curl_errno($handle);
$error = curl_error($handle);
error_log("Curl returned error $errno: $error\n");
curl_close($handle);
return false;
}
$http_code = intval(curl_getinfo($handle, CURLINFO_HTTP_CODE));
curl_close($handle);
if ($http_code >= 500) {
// do not wat to DDOS server if something goes wrong
sleep(10);
return false;
} else if ($http_code != 200) {
$response = json_decode($response, true);
error_log("Request has failed with error {$response['error_code']}: {$response['description']}\n");
if ($http_code == 401) {
throw new Exception('Invalid access token provided');
}
return false;
} else {
$response = json_decode($response, true);
if (isset($response['description'])) {
error_log("Request was successful: {$response['description']}\n");
}
$response = $response['result'];
}
return $response;
}
function apiRequest($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
return false;
}
foreach ($parameters as $key => &$val) {
// encoding to JSON array parameters, for example reply_markup
if (!is_numeric($val) && !is_string($val)) {
$val = json_encode($val);
}
}
$url = API_URL.$method.'?'.http_build_query($parameters);
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($handle, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($handle, CURLOPT_TIMEOUT, 60);
return exec_curl_request($handle);
}
function apiRequestJson($method, $parameters) {
if (!is_string($method)) {
error_log("Method name must be a string\n");
return false;
}
if (!$parameters) {
$parameters = array();
} else if (!is_array($parameters)) {
error_log("Parameters must be an array\n");
phpBidlokoder2 # 0
Janycz # 0 ⇈
guest # 0 ⇈
По факту -- тыж понимаешь:)
gost # 0 ⇈
В одинарных кавычках, в отличие от двойных, не производится строковая интерполяция:
$x = 42;
echo "x = $x"; // x = 42
echo 'x = $x'; // x = $x
Koko # 0 ⇈
По-моему это каждый петух знает.
admin # 0 ⇈
neTyx_npoTKHyTbIu # 0 ⇈
Милости прошу, к нашему шалашу!
MAPTOBCKuu_nemyx # 0 ⇈
phpBidlokoder2 # 0 ⇈
MAKAKA # 0 ⇈
ахахахахах
gost # 0
> curl_close
Какой «Цэ» )))
А ещё у них ресурс $handle инициализируется в apiRequest(), а освобождается почему-то в exec_curl_request(). Как-то это попахивает.
guest # 0 ⇈
От скриптушни мы возьмем анскильность
Джава поделится с нами своей неебической вербозностью
А няшная сишечка подарит там глобальные стейты и лоу-левел пишутню образца 1989-го года
MAPTOBCKuu_nemyx # 0 ⇈
Stallman # 0 ⇈
Захотели скриптушиную анскильную типизацию? Ебанули такое приведение типов, что оператором "==" стало невозможно пользоваться безопасно даже при явном сравнении двух строк.
Захотели вербозное жабье ООП? Сделали еще более вербозный синтаксис ("public int foo()" против "public function foo() : int"; "foo.bar()" против "foo::bar()" или "$foo->bar()").
Захотели тоненькие лоу-левельные врапперы над сишными функциями? Обосрались с обработкой ошибок (в "РНР" есть как минимум 4 активно используемых способа сообщить об ошибке, в более-менее сложном скрипте практически невозможно гарантировать вызов всех необходимых nemyx_destroy()).
Это не просто худшее из всех миров - это, блять, какая-то доведенная до абсурда пародия на всё худшее. Но страшнее всего то, что находятся макаки, которые на полном серьёзе говорят: "А што тут такова? Нармально жи зделоно". Как говорится, шутки смешные, но ситуация страшная.
guest # 0 ⇈
Janycz # 0 ⇈
guest # 0 ⇈
Janycz # 0 ⇈
guest # 0 ⇈
что делает fpassthru? А mysql_real_escape_string?
Stallman # 0 ⇈
Кому вообще понадобилась такая функция?
Там еще няшный пример использования в доке
Угадайте, 4096 - это длина пожатых данных, разжатых с тегами или разжатых без тегов? 🙂
Janycz # 0 ⇈
kak # 0 ⇈
guest # 0 ⇈
а есть такая функция, чтоб еще сразу постила во вконтакте и писала на email
Janycz # 0 ⇈
gost # 0 ⇈
Много «новичков» догадаются о том, почему оно real, а mysql_escape_string() — не real?
Stallman # 0 ⇈
https://www.php.net/manual/ru/mysqli.summary.php
Так же появились новые реальные функции: mysqli_real_connect(), mysqli_real_query().
Janycz # 0 ⇈
guest # 0 ⇈
mysql_rational_escape_string
ну, поехали
mysql_string_escape_real
mysql_string_escape_boolean
mysql_boolean_escape_reference
mssql_lpvoid_escape_dlgproc
Janycz # 0 ⇈
kak # 0 ⇈
Stallman # 0 ⇈
admin # 0 ⇈
gost # 0 ⇈
admin # 0 ⇈
gost # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
gost # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
http://dark.gothic.ru/alina/obraz/pustota.htm
gost # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
#вореции
Xyu_HE_3HAET # 0 ⇈
KOPOHABuPYC # 0 ⇈
guest # 0 ⇈
Современный программист должен писать код на JavaScript (только так можно стать успешным) а тем нет никаких "void*"
Stallman # 0 ⇈
guest # 0 ⇈
ахахахаха. зачем? зачем?
MAPTOBCKuu_nemyx # 0 ⇈
Если мы не обернём вызов функции kukarek в void(), то при нажатии на ссылку содержимое страницы заменится на результат вызова функции kukarek. А если обернуть, то мы сможем получить побочные эффекты вызова, не портя страницу.
guest # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
bormand # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
2. Совместимость со старым говном вроде «Webkit» в старых «iOS» или с какими-то версиями «IE», которые не обрабатывали событие onclick у дивов, если не установить в CSS свойство cursor:pointer.
guest # 0 ⇈
1024-- # 0 ⇈
guest # 0 ⇈
3.14159265 # 0 ⇈
Кстати вызов функции оператора void без скобочек в js меня жутко бесит.
>Если мы не обернём вызов функции kukarek в void()
Вон MAPTOBCKuu_nemyx тоже интуитивно ожидал что оно функция. А оно говно неконсистентное.
bormand # 0 ⇈
3.14159265 # 0 ⇈
Можно писать void void void void 1
3.14159265 # 0 ⇈
kak # 0 ⇈
3.14159265 # 0 ⇈
https://www.youtube.com/watch?v=SEHhxL4TzOk
1024-- # 0 ⇈
kak # 0 ⇈
guest # 0 ⇈
3.14159265 # 0 ⇈
К функции был применён оператор "нихуя".
guest # 0 ⇈
Так же нужно добавить в язык возможность вызова функций без скобочек как в руби или перле.
3.14159265 # 0 ⇈
js когда дело касается "ООП"-операторов delete/new вообще какая-то странная, неконсистентная херь
Так удалить объект можно
Так нельзя
А дальше начинается ещё более странное
То есть функция из window.zz уже не удаляется, если объявили function zz
Но при этом она таки обновляется значением window.zz
1024-- # 0 ⇈
guest # 0 ⇈
Функции "нихуя" оператор применен был к
1024-- # 0 ⇈
3.14159265 # 0 ⇈
3.14159265 # 0 ⇈
Кстати полезное свойство: объявить функцию не засирая глобальный скоуп
MAPTOBCKuu_nemyx # 0 ⇈
admin # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
admin # 0 ⇈
guest # 0 ⇈
guest # 0 ⇈
admin # 0 ⇈
guest # 0 ⇈
admin # 0 ⇈
admin # 0 ⇈
gost # 0 ⇈
kak # 0 ⇈
3.14159265 # 0 ⇈
guest # 0 ⇈
Чертовы милениалы, я не знаю ваших игрушек
guest # 0 ⇈
kak # 0 ⇈
guest # 0 ⇈
gost # 0 ⇈
> mysqli_real_query
Пиздец.
> :3
^_^
guest # 0 ⇈
mysqli::real_query
mysqli::store_result
Janycz # 0 ⇈
Janycz # 0 ⇈
guest # 0 ⇈
ахахахахаах :))))
j123123 # 0 ⇈
alucas # 0
phpBidlokoder2 # 0
fetch('pidor/sraker/').then
gost # 0 ⇈
admin # 0 ⇈
gost # 0 ⇈
guest # 0 ⇈
Быдла вот
Вот тоже годные
gost # 0 ⇈
Какой инглиш )))
MAPTOBCKuu_nemyx # 0 ⇈
guest # 0 ⇈
Кстати, Теймураз I (1589 — 1663) — царь Кахетии в 1606—1648 и Картли в 1625—1632 годах. Принадлежал к роду Багратиони.
guest # 0 ⇈
MAPTOBCKuu_nemyx # 0 ⇈
Сходу вспоминаю такие:
1. Застывшие формы, которые во всех временах выглядят одинаково. Реальные примеры: put и cut.
2. «Английские правильные». Реальный пример: stay — stayed —stayed.
3. Маскирующиеся под немецкие правильные. Реальные примеры: send — sent — sent, lose — lost — lost.
4. Маскирующиеся под немецкие неправильные. Реальные примеры: break — broke — broken, speak — spoke — spoken.
5. «Английские неправильные». Вообще не поймёшь, что с ними происходит. Реальные примеры: be — was — been, go — went — gone.
Ничего не забыл, или можно классифицировать точнее?
guest # 0 ⇈
eukaryote # 0 ⇈
Так ведь и в немецком с ними аналогично: sein — war — gewesen, gehen — ging — gegangen.
eukaryote # 0 ⇈
guest # 0 ⇈
Сильные глаголы не меняли своей формы, слабые -- меняли.
Я вобще не понимаю зачем Иканус разделил немецкие и английские глаголы.
Норманны нафранкофонили англичанам существительные, но не окончания глаголов кмк
зы: утверждаеца, что
Practically all English irregular verbs come from Old English or derive from strong Germanic words. Other foreign words that joined English in later times follow the standard –ed pattern.
Короче, новый код пишут через нормальые API, а старое легаси говно с костылями никак не выпилить
Stallman # 0 ⇈
"Я сверстал хуйню, всё пошло по пизде, переверстайте мне нормально".
Исходя из постановки вопроса, этот орангутан даже не пытался разобраться в своём говне. Стало быть, зряплату пусть тоже форум получает.
guest # 0 ⇈
Desktop # 0 ⇈
guest # 0 ⇈
Desktop # 0 ⇈
phpBidlokoder2 # 0 ⇈
gost # 0 ⇈
3.14159265 # 0 ⇈
Отсыплю символов
Koko # 0 ⇈
3.14159265 # 0 ⇈
Kokoй unskill )))
guest # 0 ⇈
guest # 0 ⇈
https://vk.com/id82499130
микронаушникик, ихихихи, это же блядь из Приключений Шурика за 1961 год.
https://www.youtube.com/watch?v=TuSgWqmN2gs
Janycz # 0 ⇈
Именно поэтому я за C++.
MAKAKA # 0 ⇈
>is_string($method)
и так еще
> $parameters["method"] = $method;
guest # 0