This package implements some PHP functions by Golang. Please note that it's impossible to have 100% the same behaviour between PHP and Golang functions because their mechanisms are quite different.
Minimum go version requirement: 1.18, if you are using lower version, please choose version v0.63.
| PHP function | Golang function |
|---|---|
| abs | Abs |
| base_convert | BaseConvert |
| bindec | Bindec |
| decbin | Decbin |
| dechex | Dechex |
| hexdec | Hexdec |
| decoct | Decoct |
| octdec | Octdec |
| ceil | Ceil |
| floor | Floor |
| pi | Pi |
| mt_rand | MtRand |
| rand | Rand |
| round | Round |
| PHP function | Golang function |
|---|---|
| getcwd | Getcwd |
| chdir | Chdir |
| scandir | Scandir |
| PHP function | Golang function |
|---|---|
| getimagesize | GetImageSize |
| getimagesizefromstring | GetImageSizeFromString |
| PHP function | Golang function |
|---|---|
| gethostbyaddr | GetHostByAddr |
| gethostbyname | GetHostByName |
| gethostbynamel | GetHostByNamel |
| gethostname | GetHostName |
| ip2long | IP2Long |
| long2ip | Long2IP |
| PHP function | Golang function |
|---|---|
| json_decode | JSONDecode |
| json_encode | JSONEncode |
| PHP function | Golang function |
|---|---|
| random_bytes | RandomBytes |
| PHP function | Golang function |
|---|---|
| getenv | Getenv |
| putenv | Putenv |
| memory_get_usage | MemoryGetUsage |
go get github.com/hyperjiang/php
import (
"fmt"
"github.com/hyperjiang/php"
)
// Date/Time functions
fmt.Println(php.Strtotime("2017-07-14 02:40:00")) // output: 1500000000
fmt.Println(php.Strtotime("2017-07-14T10:40:00+08:00")) // output: 1500000000
fmt.Println(php.Date("Y-m-d H:i:s", 1500000000)) // output: 2017-07-14 02:40:00
fmt.Println(php.Date("c", 1500000000)) // output: 2017-07-14T02:40:00+00:00
// String functions
str := "abcdef"
fmt.Println(php.Substr(str, 1, 0)) // bcdef
fmt.Println(php.Substr(str, 1, 3)) // bcd
fmt.Println(php.Substr(str, 0, 4)) // abcd
fmt.Println(php.Substr(str, -1, 1)) // f
fmt.Println(php.Substr(str, 0, -1)) // abcde
// Math functions
fmt.Println(php.Round(5.055, 2)) // 5.06
// Array functions
arr := []string{"1", "1", "2", "3", "a", "ab", "abc", "abc", "abc", "Abc"}
fmt.Println(php.ArrayUnique(arr)) // [abc Abc 1 2 3 a ab]
fmt.Println(php.InArray("a", arr)) // true
For more usage you can find it out from test files.