Front Controller (шаблон проектирования) - объединяет всю обработку запросов, пропуская запросы через единственный объект-обработчик.
Роутинг — это маршрутизация: входящий URL разбирается специальным образом и по его результату выполняется определенный код. С роутингом напрямую связано понятие ЧПУ (человекопонятные урлы), которое позволяет исключить в адресах сложные параметры. Например вместоhttp://сайт/admin/new-pageпришлось
бы использоватьhttp://сайт/admin.php?action=new-page
Любой входящий URL на сервере разбирается по единому стандарту. Полностью приводить документацию не буду (см. как пример функцию parse_url), важно лишь понять, что в адресе передается параметр path (путь на сервере), которого на сервере реально может не быть. Например в адресеhttp://сайт/admin
каталога adminреально может не существовать.
$('#form_setting').click(function(e){
var data = $('#player_setting');
$.ajax({
type: data.attr('method'),
url: data.attr('action'),
data: data.serialize(),
success:function(data) {
$('#setting').submit();
}
})
})
form="form_setting"
<button type="submit" name="submit" id="form_setting">Сохранить</button>
<input type="hidden" name="form_setting" value="1">
$array = $arr2+$arr
, т.е. обьеденил задом наперед, $arr2
перезаписывает $arr
, мне так и нужно.Если есть скрипт a.php, в котором нужно вызвать скрипт b.php и не дожидаясь его окончания продолжить работу, то можно использовать сокеты:
Пример, вызываем скрипт b.php и передаем в него переменную foo со значением bar (можно передать и массив и что угодно или ничего не передавать). В b.php берем присланное значение и записываем в файл.
Банально в b.php будет для простоты написано:
file_put_contents('test.txt', $_POST['foo']);
В файле a.php:
function exec_script($url, $params = array()) {
$parts = parse_url($url);
if (!$fp = fsockopen($parts['host'], isset($parts['port']) ? $parts['port'] : 80)) {
return false;
}
$data = http_build_query($params, '', '&');
fwrite($fp, "POST " . (!empty($parts['path']) ? $parts['path'] : '/') . " HTTP/1.1\r\n");
fwrite($fp, "Host: " . $parts['host'] . "\r\n");
fwrite($fp, "Content-Type: application/x-www-form-urlencoded\r\n");
fwrite($fp, "Content-Length: " . strlen($data) . "\r\n");
fwrite($fp, "Connection: Close\r\n\r\n");
fwrite($fp, $data);
fclose($fp);
return true;
}
exec_script('http://YOUR_HOST/b.php', array('foo' => 'bar'));
Content-Transfer-Encoding: binary
...
$t1 = curl($cookie, $url_game.'/captcha_question/629', $url_game) or die('Ошибка: 2');
$tr = base64_encode($t1);
$tr = base64_decode($tr);
file_put_contents('img.png', $tr);