$actionShowProfile = function($matches) {
$userName = $matches[1];
echo "Это профиль юзера $userName";
};
$actionShowBalance = function($matches) {
$userName = $matches[1];
echo "Это баланс юзера $userName";
};
$routes = [
'/profile\?q=(.+)/' => $actionShowProfile,
'/profile\?user=(.+)/' => $actionShowProfile,
'/profile\/(.+)/' => $actionShowProfile,
'/balance\/(.+)/' => $actionShowBalance,
];
foreach ($routes as $rule => $action) {
if (preg_match($rule, $_SERVER['REQUEST_URI'], $matches)) {
$action($matches);
exit;
}
}
echo 'Error 404';
exit;
include 'includes/profile.php?q=...
include так не работает.include 'includes/profile.php';
и потом вызвать какой-то код, который в этом profile.php c gfhfvtnhjv/как сделать, чтобы роутер не выдавал ошибку?
<select name="" id="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="" id="b">
<option value="1">1</option>
<option value="2">2</option>
</select>
<select name="" id="c">
<option value="1">1</option>
<option value="2">2</option>
</select>
<pre id="out"></pre>
<script>
$('select').on('change', function() {
out.textContent += this.id;
}).trigger('change'); // -> выводит abc, то есть срабатывает хоть на двух, хоть на трех, значит проблема где-то в другом месте.
</script>
Да, можно накрутить лимит побольше, но потом вы упретесь в количество TCP-соединений (обычно 1024 ограничение в ОС), можно подкрутить и его, но упретесь еще во что-нибудь. В общем будьте готовы, что с ростом подключенных пользователей вам придется масштабировать серверы.
У вебсокетов на ноде немножко веселее, известны случаи, когда выжимали все 65 тысяч соединений на один ip адрес, но придется постараться.
В любом случае, с ростом числа пользователей вам придется много курить документацию, экспериментировать, дорабатывать архитектуру. Именно поэтому существуют внешние сервисы - многим проще платить за пуши или вебсокеты, чем самостоятельно поддерживать всю эту кухню.