- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 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 17.03.2020 19:59 # +1
Janycz 18.03.2020 19:55 # 0
guest8 18.03.2020 19:57 # −999
gost 18.03.2020 19:57 # +1
В одинарных кавычках, в отличие от двойных, не производится строковая интерполяция:
$x = 42;
echo "x = $x"; // x = 42
echo 'x = $x'; // x = $x
Koko 18.03.2020 23:34 # 0
По-моему это каждый петух знает.
gostinho 18.03.2020 23:37 # 0
neTyx_npoTKHyTbIu 19.03.2020 00:00 # 0
Милости прошу, к нашему шалашу!
MAPTOBCKuu_nemyx 19.03.2020 00:00 # 0
phpBidlokoder2 19.03.2020 09:12 # 0
MAKAKA 06.08.2020 23:56 # 0
ахахахахах
gost 18.03.2020 18:18 # 0
> curl_close
Какой «Цэ» )))
А ещё у них ресурс $handle инициализируется в apiRequest(), а освобождается почему-то в exec_curl_request(). Как-то это попахивает.
guest8 18.03.2020 18:20 # −999
MAPTOBCKuu_nemyx 18.03.2020 18:51 # 0
Stallman 18.03.2020 19:55 # +3
Захотели скриптушиную анскильную типизацию? Ебанули такое приведение типов, что оператором "==" стало невозможно пользоваться безопасно даже при явном сравнении двух строк.
Захотели вербозное жабье ООП? Сделали еще более вербозный синтаксис ("public int foo()" против "public function foo() : int"; "foo.bar()" против "foo::bar()" или "$foo->bar()").
Захотели тоненькие лоу-левельные врапперы над сишными функциями? Обосрались с обработкой ошибок (в "РНР" есть как минимум 4 активно используемых способа сообщить об ошибке, в более-менее сложном скрипте практически невозможно гарантировать вызов всех необходимых nemyx_destroy()).
Это не просто худшее из всех миров - это, блять, какая-то доведенная до абсурда пародия на всё худшее. Но страшнее всего то, что находятся макаки, которые на полном серьёзе говорят: "А што тут такова? Нармально жи зделоно". Как говорится, шутки смешные, но ситуация страшная.
guest8 18.03.2020 19:59 # −999
Janycz 18.03.2020 19:56 # 0
guest8 18.03.2020 19:58 # −999
Janycz 18.03.2020 20:00 # 0
guest8 18.03.2020 20:03 # −999
Stallman 18.03.2020 20:08 # 0
Кому вообще понадобилась такая функция?
Там еще няшный пример использования в доке
Угадайте, 4096 - это длина пожатых данных, разжатых с тегами или разжатых без тегов? :)
Janycz 18.03.2020 20:14 # 0
kak 18.03.2020 20:42 # 0
guest8 18.03.2020 20:43 # −999
Janycz 18.03.2020 20:12 # 0
gost 18.03.2020 20:18 # 0
Много «новичков» догадаются о том, почему оно real, а mysql_escape_string() — не real?
Stallman 18.03.2020 20:30 # +1
https://www.php.net/manual/ru/mysqli.summary.php
Так же появились новые реальные функции: mysqli_real_connect(), mysqli_real_query().
Janycz 18.03.2020 20:34 # 0
guest8 18.03.2020 20:38 # −999
Janycz 18.03.2020 20:48 # 0
kak 18.03.2020 20:45 # 0
Stallman 18.03.2020 21:04 # +1
gostinho 18.03.2020 21:06 # 0
gost 18.03.2020 21:08 # 0
gostinho 18.03.2020 21:12 # 0
gost 18.03.2020 21:14 # 0
MAPTOBCKuu_nemyx 20.03.2020 10:14 # +1
gost 20.03.2020 10:36 # +1
MAPTOBCKuu_nemyx 20.03.2020 10:54 # +1
http://dark.gothic.ru/alina/obraz/pustota.htm
gost 20.03.2020 10:57 # 0
MAPTOBCKuu_nemyx 20.03.2020 11:35 # 0
#вореции
Xyu_HE_3HAET 20.03.2020 12:08 # 0
KOPOHABuPYC 20.03.2020 12:17 # 0
guest8 18.03.2020 21:14 # −999
Stallman 18.03.2020 21:15 # +1
guest8 18.03.2020 21:16 # −999
MAPTOBCKuu_nemyx 19.03.2020 18:11 # 0
Если мы не обернём вызов функции kukarek в void(), то при нажатии на ссылку содержимое страницы заменится на результат вызова функции kukarek. А если обернуть, то мы сможем получить побочные эффекты вызова, не портя страницу.
guest8 19.03.2020 18:36 # −999
MAPTOBCKuu_nemyx 19.03.2020 19:27 # 0
bormand 19.03.2020 18:39 # 0
MAPTOBCKuu_nemyx 19.03.2020 19:26 # 0
2. Совместимость со старым говном вроде «Webkit» в старых «iOS» или с какими-то версиями «IE», которые не обрабатывали событие onclick у дивов, если не установить в CSS свойство cursor:pointer.
guest8 19.03.2020 19:34 # −999
1024-- 19.03.2020 19:19 # +1
guest8 19.03.2020 19:20 # −999
3.14159265 19.03.2020 19:24 # +1
Кстати вызов функции оператора void без скобочек в js меня жутко бесит.
>Если мы не обернём вызов функции kukarek в void()
Вон MAPTOBCKuu_nemyx тоже интуитивно ожидал что оно функция. А оно говно неконсистентное.
bormand 19.03.2020 19:26 # 0
3.14159265 19.03.2020 19:29 # +1
Можно писать void void void void 1
3.14159265 19.03.2020 19:32 # +2
kak 19.03.2020 19:36 # 0
3.14159265 19.03.2020 19:38 # 0
https://www.youtube.com/watch?v=SEHhxL4TzOk
1024-- 19.03.2020 19:49 # +2
kak 19.03.2020 20:03 # 0
guest8 19.03.2020 19:39 # −999
3.14159265 19.03.2020 19:44 # +1
К функции был применён оператор "нихуя".
guest8 19.03.2020 19:45 # −999
3.14159265 19.03.2020 20:09 # +2
js когда дело касается "ООП"-операторов delete/new вообще какая-то странная, неконсистентная херь
Так удалить объект можно
Так нельзя
А дальше начинается ещё более странное
То есть функция из window.zz уже не удаляется, если объявили function zz
Но при этом она таки обновляется значением window.zz
1024-- 19.03.2020 20:55 # 0
guest8 19.03.2020 19:46 # −999
1024-- 19.03.2020 19:51 # +1
3.14159265 19.03.2020 20:55 # +1
3.14159265 19.03.2020 19:54 # +2
Кстати полезное свойство: объявить функцию не засирая глобальный скоуп
MAPTOBCKuu_nemyx 19.03.2020 20:01 # 0
gostinho 19.03.2020 21:39 # 0
guest8 19.03.2020 21:49 # −999
guest8 19.03.2020 21:49 # −999
gostinho 19.03.2020 21:50 # 0
guest8 19.03.2020 22:09 # −999
guest8 19.03.2020 21:49 # −999
gostinho 19.03.2020 22:09 # 0
guest8 19.03.2020 22:14 # −999
gostinho 19.03.2020 22:12 # 0
gostinho 19.03.2020 22:16 # 0
gost 19.03.2020 22:51 # 0
kak 19.03.2020 19:27 # 0
3.14159265 19.03.2020 19:28 # +2
guest8 18.03.2020 21:20 # −999
guest8 18.03.2020 21:10 # −999
kak 18.03.2020 21:23 # +2
guest8 18.03.2020 21:07 # −999
gost 18.03.2020 20:46 # 0
> mysqli_real_query
Пиздец.
> :3
^_^
guest8 18.03.2020 20:48 # −999
Janycz 18.03.2020 20:50 # 0
Janycz 18.03.2020 20:31 # 0
guest8 18.03.2020 20:33 # −999
j123123 19.03.2020 20:52 # 0
alucas 18.03.2020 18:33 # +1
phpBidlokoder2 18.03.2020 19:16 # 0
fetch('pidor/sraker/').then
gost 18.03.2020 19:17 # 0
gostinho 18.03.2020 19:18 # 0
gost 18.03.2020 19:21 # +1
guest8 18.03.2020 19:33 # −999
gost 18.03.2020 19:36 # 0
Какой инглиш )))
MAPTOBCKuu_nemyx 19.03.2020 17:08 # 0
guest8 19.03.2020 17:15 # −999
guest8 19.03.2020 17:09 # −999
MAPTOBCKuu_nemyx 19.03.2020 17:21 # +2
Сходу вспоминаю такие:
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.
Ничего не забыл, или можно классифицировать точнее?
guest8 19.03.2020 17:50 # −999
eukaryote 20.03.2020 02:33 # +3
Так ведь и в немецком с ними аналогично: sein — war — gewesen, gehen — ging — gegangen.
eukaryote 20.03.2020 02:42 # +2
guest8 20.03.2020 02:47 # −999
Stallman 18.03.2020 21:00 # 0
"Я сверстал хуйню, всё пошло по пизде, переверстайте мне нормально".
Исходя из постановки вопроса, этот орангутан даже не пытался разобраться в своём говне. Стало быть, зряплату пусть тоже форум получает.
guest8 18.03.2020 21:01 # −999
Desktop 18.03.2020 22:01 # 0
guest8 18.03.2020 22:08 # −999
Desktop 19.03.2020 02:25 # 0
phpBidlokoder2 18.03.2020 19:46 # +1
gost 18.03.2020 19:34 # +1
3.14159265 18.03.2020 23:55 # 0
Отсыплю символов
Koko 19.03.2020 16:58 # 0
3.14159265 19.03.2020 20:27 # 0
Kokoй unskill )))
guest8 19.03.2020 00:07 # −999
guest8 19.03.2020 00:09 # −999
Janycz 18.03.2020 19:57 # 0
Именно поэтому я за C++.
MAKAKA 18.03.2020 20:02 # +4
>is_string($method)
и так еще
> $parameters["method"] = $method;
guest8 20.03.2020 02:37 # −999