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

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Можно например так:
    $a = "abcab";
    $b = str_split($a); 
    asort($b);
    var_dump(implode('', $b));
    Ответ написан
  • Почему в переменной $_SERVER['DOCUMENT_ROOT'] папка другого сайта?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Не знаю как сейчас, но лет эдак 5 назад, я помню, у Apache'а было 2 режима работы на эту тему:
    а) Нормальный режим
    б) Режим автоматического создания поддоменов на основе файловой системы (т.е. создаёте папку - она становится поддоменом)

    В режиме "Б" была такая особенность, что при создании поддомена таким образом, физически в конфигурации сервера этого поддомена не присутствовало, вернее будет сказать, он наследовал все настройки родительского домена, от того и DOCUMENT_ROOT и некоторые другие настройки, могли туда попасть из домена-родителя.
    Ответ написан
  • Есть ли хороший фраймворк независимый form builder?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Чем Вас FormBuilder из Symfony не устроил? По моему, вот это он и он же на Github'е.
    Ответ написан
    Комментировать
  • Как переименовать файл?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Это не преименование файла, а отдача файла через скрипт.

    Например, так.
    Ответ написан
    Комментировать
  • Как изменить часть строки?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    1. Не мучайте файловую систему, всякими переборами... которые там не нужны.
    2. Если Вам нужно уникальное имя файла - его можно сгенерировать множеством способов, например, функция microtime вернёт время в милисекундах. И так как, чисто гипотетически, вероятность загрузки > 1000 файлов в секунду равна примерно нулю (в Вашем случае точно) - цифры всегда будут уникальными, не зависимо от папок... Если планируется >1000 файлов в минуту, можно ещё подставлять рандомное число.
    3. Для замены строк, есть str_replace
    4. Расширение файла получить не сложно, есть масса способов того
    5. Есть масса способов, получить имя файла без расширения, что бы аменить его через [п.3]

    Надеюсь, Вы понимаете, к чему я это всё... Вам нужно просто хорошенько обдумать задачу, в будущем этот навык будет крайне полезен.
    Ответ написан
    Комментировать
  • Как делать правильный роутинг сайта, если сайт находится в другой директории?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    на веб-сервере Apache файлы, в котором "сайт" лежит в "другой папке" выглядит так:

    #Файл .htaccess лежащий в корне сервера
    <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>


    это переадресовывает все запросы в папку "паблик", взято из Laravel-5. Аналогичным способом можно сделать и для Nginx и скорее всего, для большинства других серверов.
    Ответ написан
    Комментировать
  • Как транслировать видео по расписанию на сайте?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    На счёт готовых решений не уверен, но собрать что-то такое самостоятельно, по моему, не составит труда (что собственно и делают некоторые... стримеры). Подробности можно почитать тут. Среди прочего, там есть пример как вещать аудио-файлы подряд, по аналогичной схеме, я думаю, можно поступить и с видео-файлами.

    Так же, можно сделать расписание с помощь at или cron, или с помощью несложных скриптов созданных для реализации конкретно Ваших задач.
    Ответ написан
    Комментировать
  • Насколько junior php должен знать html/css?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Если вы "джун-бэкэндер" - основ вполне достаточно. А если Вы как у нас на просторах бывшего СССР любят - сис. админ + программист + верстальщик и ещё неплохо если дизайнер и электрик в одном лице - то... делайте выводы соответственно :)
    Ответ написан
    Комментировать
  • Как запустить my sql php через cron?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Защитить этот файл - убрать у всех права на чтения и запись, кроме пользователя от которого он будет запускаться, это первый момент.

    Второй момент - не нужно так извращаться со временем, в MySQL есть стандартные функции для работы с ними, в т.ч. функция NOW() - возвращает текущие дату/время...

    *по поводу прав, это будут права 500, а по поводу работы с датами в MySQL - вот тут неплохо расписано.

    да, и не ставьте закрывающий тег ?> в конце PHP-файла, если там нет кода отличного от PHP, это может вызывать потенциальные проблемы с выводом всякого мусора в браузер и должно входить в привычку, даже если скрипт работает за пределами браузера.
    Ответ написан
    5 комментариев
  • Правильно ли я понимаю параметр $this?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Через $this можно/нужно обращаться к переменным и методам внутри класса. Тут всё верно.

    Но, один момент меня смущает. Зачем задавать переменным значения по умолчанию, если в конструкторе объекта они всё равно безусловно переопределятся... в этом нет особого смысла, за исключением крайне редких ситуаций, но я думаю, это не тот случай.
    Ответ написан
    4 комментария
  • Как отправить форму в фоновом режиме?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    AJAX, самый просто вариант - это JQuery + JQueryForm.
    Ответ написан
    Комментировать
  • Почему не срабатывает SQL запрос?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Выполните запрос от этого же пользователя без этого скрипта. В phpMyAdmin, или в консольном клиенте MySQL, или подключитесь к серверу удаленно... Тогда мы будем знать, ли это в скрипте, или проблема в том, что у пользователя, под которым Вы работаете в БД - не хватает прав на создание базы. А вообще, после запроса, на создание БД - нужно ещё раз проверять ошибки...
    Ответ написан
    Комментировать
  • Как передать содержимое текстового поля формы в переменную без перезагрузки страницы с помощью GET-запроса?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как-то так примерно:
    $( 'body' ).on( 'click', 'a.md-trigger', function( e ) {
        var txt = $('#id_tektovogo_polya').val();
        $.get('http://domain.com/?get_key='+txt, function() {
            //Код после того, как форма отправилась.
        });
    });


    Очень примерно, но я думаю, суть Вы поймете.

    Что бы ссылка "не работала" - можете использовать вариант приведенный выше, либо удалить из ссылки параметр href, либо сделать примерно так:

    <a href="javascript:void(0);>Ссылка</a>
    Ответ написан
    Комментировать
  • Как удалить дубли в CSV по значению с отдельного столбика (PHP)?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Я думаю, при таком раскладе (на основании комментариев выше), поступил бы примерно так:

    $uniq_string = []; //Пустой массив уникальных значений
    $uniq_column = 4; //Номер уникальной колонки
    $data = file('file.csv'); //Получаем массив строк
    
    $f = fopen('new_file.csv', 'w');
    for($i = 0; $i < count($data); $i++) {
        $row_array = explode(';', $row[$i]);
        if (!in_array($row_array[$uniq_column], $uniq_string)
            $uniq_string[] = $row_array[$uniq_column];
            fwrite($f, $data[$i])
        }
    }
    fclose($f);


    Как-то примерно так, код приблизительный и я его не тестировал, но думаю, мысль ясна... Мы переписываем файл оставляя только уникальные строки.
    Ответ написан
    Комментировать
  • Как сделать простейший онлайн аукцион?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Хотя я и не любитель ноды и вообще всяких извращенских технологий, в 2016-м (уже почти 17-м), когда есть Веб-сокеты... Но, всё же, посмотрите вот это.
    Ответ написан
    Комментировать
  • В чем проблема composer?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Попробуйте заменить обратные слеши (в путях) \ на прямые: /, возможно, они интерпретируются как экранирующий символ (что скорее всего, иначе не было бы возможности написать пробел, например), или попробуйте вместо \ поставить \\, это может помочь.

    Да, и корректность самих путей проверить нужно.
    Ответ написан
  • Почему MySQL не сразу фиксирует результат UPDATE?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Может есть какая-то функция закрытия запроса и процесс будет висеть пока MySQL не закончит?
    А какая разница, запаралеллится другой процесс PHP, пока тот будет висеть занимая пул, откроет новое соединение и сделает то же самое. Вы же не думаете, что PHP обрабатывает всех клиентов в 1 поток/скрипт? Пишите лог запросов, которые выполняются и будем разбираться, от чего именно такой порядок запросов, а а не какой-то другой.

    А вообще, в MySQL есть транзакции и блокировки, которые как раз защищают от таких случаев, когда кто-то что-то куда-то не успел, или не записал или... Попробуйте использовать их. Главное, не забудьте, что все операции записи/обновления должны проходить в одной транзакции, тогда подобных проблем не возникнет с вероятностью близкой к абсолюту.
    Ответ написан
  • Правильно ли я вывожу данные из массива в переменную?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Здравствуйте! Правильно ли я организую вывод данных из массива в переменную?
    - в целом, я думаю да, но, не понимаю, зачем Вам это?

    Что бы использовать полученные данные, например, в строке, можно использовать сразу "основную" переменную, точно так же, например:
    $myString = "На почтовый ящик: {$cursitearr['email']} было отправлено уведомление";


    Аналогичным же образом их (переменные с результатом выборки / массивы) можно использовать и далее по коду.
    Ответ написан
    Комментировать
  • Как спарсить определенный столбец из html таблицы?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    foreach($html->find('table tr td') as $e){

    У Вас селектор не соответствует поставленной задаче, он должен выглядеть либо как-то так:

    foreach($html->find('table tr td:eq(3)') as $e)

    либо, вот так:

    foreach($html->find('table tr td', 3) as $e)

    где 3 - индекс элемента в наборе, относительно родителя (начинается с нуля, если мне память не изменяет).

    Как именно написать правильно в рамках php_simple_html_dom я точно сказать не могу (я последний раз пользовался phpQuery а потом DomCrawler (из Symfony)), но основная суть в том, что Вы должны найти/использовать аналог фильтра eq из JQuery.
    Ответ написан
    2 комментария
  • Почему не отображаются файлы на wordpress?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Полагаю, что отсутствует (или поврежден) плагин, который конвертирует соответствующий тег в конечный код. Скорее всего вот этот.
    Ответ написан
    Комментировать