Мне кажется, что как-то так можно:
/** @param array $args */
function render(): string
{
// Распаковка "виртуального" аргумента (массива) в набор переменных для шаблона
\extract(\func_get_args()[0] ?? []);
// Перенаправление stdout в буфер
\ob_start();
try {
require __DIR__ . '/path/to/template.php';
} catch(\Throwable) {
// Что-то пошло не так...
} finally {
return \ob_get_clean();
}
}
https://domain.com/products/chairs?height=200&width=100
r.HandleFunc("/products/{category_handle}", h.ShowProducts).Methods("GET")
// из извлекаем из URL категорию
vars := mux.Vars(r)
categoryHandle := vars["categoryHandle"]
// получаем параметры
height, _ := strconv.Atoi(r.URL.Query().Get("height"))
width, _ := strconv.Atoi(r.URL.Query().Get("width"))
type Two struct {
Two1 string `json:"two_1"`
Two2 string `json:"two_2"`
}
type One struct {
One1 string `json:"one_1"`
One2 string `json:"one_2"`
}
type list struct {
One `json:"one"`
Two `json:"two"`
}
data := `[{"one" : { "one_1": "j_1", "one_2": "j_2" }, "two" : { "two_1": "r_1", "two_2": "r_1"}}, {"one" : { "one_1": "j_1", "one_2": "j_2" }, "two" : { "two_1": "r_1", "two_2": "r_1"}}]`
var lists []list
if err := json.Unmarshal([]byte(data), &lists); err != nil {
println(err.Error())
}
for _, v := range lists {
fmt.Printf("%+v", v.One1)
fmt.Printf("%+v", v.Two2)
}
ls | grep -v dir2 | xargs rm -rfv
UPDATE link_count SET count=count+? WHERE link_id=? and number=?
http://telegram.me/mybot?start=fe9Uing2sh
(заменить название бота и сам код)function file_get_contents_from_url($url){
$data = file_get_contents($url);
if ($data === false){
if (function_exists('curl_init')){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_TIMEOUT, 5);
$data = curl_exec($curl);
curl_close($curl);
}
}
return $data;
}
git branch имя
git push origin --all