Ответы пользователя по тегу PHP
  • Как вывести определенный текст из памяти (php)?

    MaEcTPo
    @MaEcTPo
    Как можно вообще тратить своё время, чтобы задавать такие вопросы?
    Из памяти! Это "из значения переменной/массива", а не из памяти!
    $testString = '/index.php?route=product/category&path=60';
    parse_str(parse_url($testString, PHP_URL_QUERY), $params);
    print_r($params);


    Вывод:
    Array
    (
        [route] => product/category
        [path] => 60
    )
    Ответ написан
    4 комментария
  • Сайт php + AJAX, приехали?

    MaEcTPo
    @MaEcTPo
    Конкретно с этим кодом, с минимальными затратами времени я бы сделал следующее:

    1. В функциях я оставил бы только формирование массивов данных. Переименовал бы их в `get_news()`, `get_news_menu()`. Они бы возвращали только массивы данных, например:
    $news = [
        0 => [
            'photo' => 'photoValue',
            'title'    => 'Title Value',
            'description' => 'Some long Description',
        ],
        1 => [
            'photo' => 'photoValue',
            'title'    => 'Title Value',
            'description' => 'Some long Description',
        ],
    ];


    С меню так же - возвращаете массив, только вместо photo, title, description уже будут url, title, что-то ещё.

    2. Всю HTML-разметку можно вынести в отдельный файл, например, который в данном случае подключить при помощи include(). Но это особо не повлияет на качество кода :)
    Саму разметку уже делать подобным способом, на примере с меню:

    <div class="card" style="height: 30px;">
        <?php foreach (get_menu_items() as $menuItem) : ?>
            <a href="<?= $menuItem['url'] ?>"><?= $menuItem['title'] ?></a>
        <?php endforeach; ?>
    </div>


    Потом, с опытом, придёт понимание того, что некоторые части повторяются и их можно и нужно выносить в отдельные блоки (Twig), паршалы (symfony1, zend1).

    3. Относительно аякса, то ничто вам не мешает, если это аякс возвращать на клиент json структуры ваших новостей, который клиент уже будет рендерить так, как пожелает. А на сервере это всего лишь `json_encode(get_news());` отправить в браузер.

    P.S. мог допустить синтаксических ошибок, так как в IDE не проверял. Надеюсь, что помог.
    Ответ написан
    5 комментариев
  • Как правильно записать и в дальнейшем работать с датой?

    MaEcTPo
    @MaEcTPo
    Если в БД тип `datetime`, то я бы предложил оперировать датой как объектом \DateTime().
    Чтобы создать объект, можно воспользоваться методом createFromFormat()

    Чтобы потом записать, использовать стандартные константы:
    $dateTime = new DateTime() // создаст объект со текущим временем
    echo $dateTime->format(\DateTime::ATOM) // покажет дату в формате, необходимом для базы данных.
    echo $dateTime->format('Y-m-d H:i:s'); // упрощённый формат.


    Больше можно узнать по ссылке на документацию по методу format()

    P.S. Из формулировки вашего вопроса не совсем понятно, на что именно вы хотите получить ответ. Перечитывайте вопросы перед отправкой, расставляйте запятые и формулируйте вопрос чётко и ясно.
    Ответ написан
    Комментировать