Все зависит от того как приходят данные, они могут быть в переменной $_REQUEST или их нужно достать из JSON контента с помощью file_get_contents("php://input").
Допустим они в $_REQUEST,
$key, $pr1, $pr2, $pr3;
$keys = array( "key", "pr1", "pr2", "pr3" );
foreach( $_REQUEST as $k => $v ){
if( in_array( $k, $keys ) ){
$$k = $v;
}
}
// Тут можешь для проверки вывести
echo $key . '<br>';
echo $pr1 . '<br>';
echo $pr2 . '<br>';
echo $pr3 . '<br>';
public function __construct(){
$uri_path = $_SERVER['REQUEST_URI']; // Тут нужно как-то получить PATH часть из ссылки, можно через parse_url
if(isset(self::$routes[$uri_path]) && is_callable(self::$routes[$uri_path])){
return call_user_func( self::$routes[$uri_path] ); // Вызов callback функции
}else{
header('Location:/beejee/404');
}
}
static public function get( $url, $callback ){
self::$routes[$url] = $callback;
}
Добавляешь в таблицы поля, что-то типа
было text
стало text, text_en, text_sp, text_pl и т.д.
$lang = $_GET['lang']; // Допустим lang хранится в гет параметре (можно и в куки хранить выбранный язык)
$lang = in_array( $lang, [ 'ru', 'en', 'sp', 'pl' ] ) ? "_$lang" : ''; // Получается так "_ru" (вместо ru язык выбранный) или пустая строка.
При генерации страницы где выводишь $row['text'] заменяешь на $row["text$lang"].
Что касается статичных данных, то проще хранить шаблоны для каждого языка и подключать при генерации страницы.
var banners = [];
// Генерируем тестовый массив баннеров
for( var i = 1; i <= 5; i++ ){
banners.push( {
data: i,
w: Math.floor( Math.random() * 1000 ) + 1 // Вес баннера от 1 до 1000 к примеру
} );
}
console.log(banners);
var wt = 0; // Сумма веса всех баннеров
for( var i = 0; i < banners.length; i++ ){
var banner = banners[i];
banner.bound = wt += banner.w; // Определяем границу, которая зависит от веса
}
console.log(banners); // Проверить наглядно какие границы созданы
// Генерируем число от 0 до wt
var r = Math.floor( Math.random() * wt + 1 );
for( var i = 0; i < banners.length; i++ ){
// Ищем какой баннер попал в полученное случайное число
var banner = banners[i];
if( r > banner.bound - banner.w && r < banner.bound ){
console.log('banner ' + banner.data); // В итоге при таком подходе вероятность выпадения более ценного баннера выше, главное чтоб вес был > 0, иначе баннер найден неправильно.
}
}