Ответы пользователя по тегу PHP
  • Что за формат пароля?

    @S-a-n-d-r-0
    Ответ написан
    Комментировать
  • Вывод слова посимвольно?

    @S-a-n-d-r-0
    Попробуйте вместо str_split эту функцию:
    function mb_str_split( $string ) { 
        return preg_split('/(?<!^)(?!$)/u', $string ); 
    }
    Ответ написан
    3 комментария
  • Что нужно знать про ООП?

    @S-a-n-d-r-0
    Список принципов ООП скудный и охватывает далеко не все. Почитайте это:
    https://ru.wikipedia.org/wiki/Категория:Принципы_п...
    Ответ написан
    Комментировать
  • Как объединить 2 текстовых файла в один на php?

    @S-a-n-d-r-0
    Мож так
    <?php
    // файл, где будет записываться вся информация
    $save_file = $_SERVER['DOCUMENT_ROOT'].'/catalog-monitor/itog.txt';
    $file_content = '';
    
    // выборка txt-файлов и получение их содержимого
    $file_content .= file_get_contents($_SERVER['DOCUMENT_ROOT'].'/catalog-monitor/1.txt');
    $file_content .= file_get_contents($_SERVER['DOCUMENT_ROOT'].'/catalog-monitor/2.txt');
    
    // сохранение полученной информации в файл
    file_put_contents($save_file, $file_content, FILE_APPEND | LOCK_EX);
    ?>
    Ответ написан
    Комментировать
  • Как записать событие Js в бд?

    @S-a-n-d-r-0
    Как вариант:
    На стороне клиента:
    <div class=“google-ad-container”>someHTML...</div>
    <script>
    var google_ad_click = 0; //объявляете переменную, в которую будете считать клики
    $('.google-ad-container').click(function (event) {
      google_ad_click = google_ad_click + 1; //считаете клики
    });
    
    setInterval(function () {
    	var data = new FormData();
    	data.append('google_ad_click_tratata', google_ad_click);
    	$.ajax({ //отправляем все это дело на сервер
    			type: "POST",
    			url: "АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php",
    			data: data,
    			cache: false,
    			processData: false, // NEEDED, DON'T OMIT THIS
    			contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)
    			dataType: 'json',
    			success: function(respond){ //если ajax отправился нормально
    				google_ad_click = 0; //обнуляем счетчик кликов, чтобы начал считаться снова
    				console.log(JSON.stringify(respond)); //если вы что-то выводите на сервере, вывести это на консоль на клиенте
    			}
    			
    			,error: function(xhr, status, error) //если ajax НЕ отправился нормально
    			{
    				console.log('ajaxError xhr:', xhr); //выводим ошибки в консоль
    				console.log('ajaxError status:', status);
    				console.log('ajaxError error:', error);
    			}
    		});
    }, 30000); //проворачиваем это дело каждые пол минуты
    
    </script>


    На стороне сервера, в файле АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php
    if ($_POST['google_ad_click_tratata'])
    if (is_numeric($_POST['google_ad_click_tratata']))
    {
    	$addclicks = $_POST['google_ad_click_tratata'];
    	//А дальше - добавляем значение addclicks к нужному полю в вашей БД
    }

    Код может быть с ошибками, не проверял, но суть такая
    Ответ написан
    3 комментария
  • Выборка диапазона дат по двум столбцам из MySQL?

    @S-a-n-d-r-0
    Дан некий текущий месяц.
    Событие попадает, если
    1) его начало в текущий месяце;
    2) его конец в текущий месяце;
    3) его начало в месяце<текущего И конец в месце >текущего.
    Всего три случая. Значит нужен WHERE (1 условие) OR (2е условие) OR (3 условие).
    • Первое условие выполняется, если (start_time >= 01.НужныйМесяц.НужныйГод) AND (start_time < 01.НужныйМесяц+1.НужныйГод)
    • Второе - по аналогии, но только уже с end_time.
    • Третье - (start_time < 01.НужныйМесяц.НужныйГод) AND (end_time >= 01.НужныйМесяц+1.НужныйГод)


    Вот пример, как это можно сделать. Только очень корявый, т.к. написан на SQLite. На MySQL будет чуток по-другому, но смысл тот же. Тестировал на https://www.jdoodle.com/execute-sql-online/
    create table tab(id int, start text, end text);
    
    /* YYYY-MM-DD */
    insert into tab values(1, '2019-09-10', '2019-09-12');
    insert into tab values(2, '2019-08-07', '2019-11-12');
    insert into tab values(3, '2018-05-12', '2018-06-12');
    insert into tab values(4, '2018-01-12', '2019-03-12');
    insert into tab values(5, '2019-08-10', '2019-09-12');
    insert into tab values(6, '2019-09-10', '2019-10-12');
    insert into tab values(7, '2019-08-10', '2019-10-05');
    insert into tab values(8, '2019-08-10', '2019-08-12');
    insert into tab values(9, '2019-07-10', '2019-08-12');
    insert into tab values(10, '2019-09-30', '2019-10-01');
    
    select * from tab WHERE ((date(start) >= date('2019-09-01')) AND (date(start) < date('2019-10-01'))) OR ((date(end) >= date('2019-09-01')) AND (date(end) < date('2019-10-01'))) OR ((date(start) < date('2019-09-01')) AND (date(end) >= date('2019-10-01')));
    Ответ написан
    Комментировать
  • Как запускать telegram бота на php в определенное время каждый день?

    @S-a-n-d-r-0
    Гугли слово cron
    Ответ написан
    Комментировать