Как в PHP сделать pack() из массива

Есть в PHP хорошая функция для запаковки каких-либо данных в бинарный формат. И с помощью неё можно паковать любые данные, в том числе массивы, с некоторыми ограничениями. Рассмотрим простой пример: php > $a = [1,2,3,4,5,6]; php > $packed = pack(‘c*’, …$a); php > echo strlen($packed); 6

Как в Go lang сделать HTTP-запрос через прокси

Существует несколько способов. Первый — через переменную окружения. Он будет хорош для простых задач и может работать без правки Go-кода. Выполните в bash перед запуском своего приложения: export HTTP_PROXY=»http://proxyIp:proxyPort»

Как в Go lang определить является ли строка числом

Является ли строка числом? Достаточно частая задача для тех, кому приходят данные от пользователя в виде строк, но для последующей обработки их нужно провалидировать и конвертировать. Использовать для этого можно функцию Atoi из пакета strconv: if _, err := strconv.Atoi(v); err == nil { fmt.Printf(«%q looks like a number.\n», v) }

Как в Go lang работать с регулярными выражениями

Работа с регулярками в Go lang выглядит весьма любопытно. Для начала нужно скомпилировать регулярное выражение: regexp, err = regexp.Compile(`expression`) if err != nil { panic(err) } Обратите внимание каким символом обёрнуто правило вместо кавычек или апострофа. Теперь можно работать со скомпилированным выражением: match := randomRegexp.FindStringSubmatch(mysting) В переменной math будет массив […]

Как в Go lang разделить строку на части

Довольно частая задача — получить от пользователя некое значение в виде строки и распарсить его несколько составных частей других типов. Например, нужно получить отдельно хост и порт некоего эндпоинта: package main import ( «fmt» «strings» ) func main() { s := strings.Split(«myhost.com:5432», «:») ip, port := s[0], s[1] fmt.Println(ip, port) […]

Как выбрать случайное значение из slice в Go lang

Нужно использовать функцию Intn из пакета rand, а затем использовать результат её выполнения в качестве индекса слайса. import ( «math/rand» «time» ) reasons := []int8{1, 2, 4, 6, 7, 9] // инициализация глобального генератора псевдослучайных чисел rand.Seed(time.Now().Unix() ) len := len(reasons) rnd := rand.Intn(len) value := reasons[rnd] Если нужна большая […]

Как в Go lang присвоить переменной функцию в качестве значения

Чтобы присвоить переменной анонимную функцию и вызвать её по имени переменной в последующем нужно объявить переменную с типом функции: var f func() (*MyStruct, error) Затем нужно обернуть вызов существующей функции: f = func() (*MyStruct, error) {return anotherFunc(id)} После чего переменную можно использовать как функцию: data, err := f() Причём в данном […]