Задать вопрос
  • Может ли, во время чтения файла одним скриптом, другой скрипт начать записывать в этот файл новые данные?

    @rPman
    первым, кто открывает файл, должен использовать функцию flock над идентификатором файла fopen
    $file = fopen('filename.txt', 'r');
    // пробуем установить эксклюзивную блокировку
    if (flock($file, LOCK_EX)) {
        // выполнение операций чтения
        // ...
        
        // освобождаем блокировку
        flock($file, LOCK_UN);
    } else {
        echo "Не удалось установить блокировку на файл.\n";
    }
    fclose($file);


    это системная фича posix, не привязанная к языку программирования

    p.s. аналогичные механизмы есть у windows, при открытии файла указывается тип блокировки shared...
    Ответ написан
    5 комментариев
  • Изучение vue без хорошего знания JS?

    @SigmaMale
    Middle Frontend developer (плюс минус middle)
    Использовать vue не зная JS теоретически можно, при условии, что умеете программировать на другом языке, но Ваши возможности будут очень сильно ограничены.

    Кроме того, решение самых простых проблем и ошибок превратится для Вас в ад. Получится замкнутый круг: Вы не знаете JS потому что не любите его, а не любите потому что у Вас будет негативный опыт с ним, который возникнет из за того, что Вы не знаете JS.

    Скорее всего, Вы не любите JS из за того, что уже привыкли к логике и синтаксису Go. Человеческий мозг не очень любит оказываться в новой обстановке. Среднестатистический программист знает 3 языка программирования, если Вы планируете работать в этой области, то рано или поздно Вам придется работать с другими, не привычными технологиями. По сути, в Вашем случаи, лучший способ полюбить JS - это поработать с ним какое то время, что бы мозг привык. В прошлом я сильно не любил язык PHP, так было до тех пор, пока я не поработал с ним какое то время и не привык ко всем его странностям. Сейчас я к нему нейтрально отношусь.

    P.S.
    и на vue просто в 1 файле сделал разметку с css и используешь в других страницах, а в HTML нужно копировать html и переносить, что не особо нравится.

    Для вёрстки Вы можете начать использовать шаблонизаторы (pug) и препроцессоры (SCSS). Они решают описанную Вами проблему. Обычно для их компиляции используют gulp или webpack, но Вам как новичку я рекомендую использовать программу preposs. Хотя в целом, для маленьких тестовых проектов - это вообще не проблема.
    Ответ написан
    2 комментария
  • Форма обратной связи не сохраняет данные. Присылает пустые письма. Выдает ошибку "Name is required Email is required Message is required". почему?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Селекторы регистрозависимые

    У вас идентификаторы в html с большой буквы

    <input type="text" class="form-control" id="Name" placeholder="Иван Иванов">


    А в javascript с маленькой

    var name = $("#name").val();

    вот эти:
    id="Name"
    $("#name")


    Сделайте одинаково. Касается всех полей.
    Ответ написан
    Комментировать
  • Почему ПК запускается со второго нажатия кнопки?

    hint000
    @hint000
    у админа три руки
    1. конденсаторы на материнке;
    2. конденсаторы в БП.
    Ответ написан
    5 комментариев
  • Насколько удобно использовать visual studio code для С# разработчика?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Оставайтесь на винде и VisualStudio. Не, так-то пользоваться, конечно можно, но потом все равно захотите вернуться на студию, т.к. она и функциональнее и лучше интеграция. Если хотите начать использовать линукс, но до этого не пользовались им - поставьте для начала его в виртуалку (VirutalBox наше все) и попробуйте использовать в повседневной работе. А уже потом решайте, сможете ли полностью отказаться от винды или нет. Ставить линукс второй системой не рекомендую (слишком легко ломаются загрузчики ОС, когда их несколько и если что - чинить сложнее) - для разработки и обычной офисной работы виртуалки хватает за глаза.
    Ответ написан
    5 комментариев
  • Ноутбук быстро выключается без зарядки.Что делать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Диагностику батареи и подсистемы питания. Скорее всего батарея израсходовала свой ресурс и её надо заменить. Существенно менее вероятно, что проблема в подсистеме питания, но эта вероятность все равно есть.
    Ответ написан
    Комментировать
  • Почему выходит надпись "CPU Throttling - Overheating Detected!"?

    xez
    @xez Куратор тега Компьютеры
    TL Junior Roo
    Все потому, что у вас перегрев и тротлинг.
    Ответ написан
    6 комментариев
  • Как извлечь данные из определенной ячейки html таблицы?

    SemanticMoscow
    @SemanticMoscow
    вам нужна коллекция элементов
    let trs = document.querySelectorAll('tr'); // получили коллекцию строк
    let td = trs[1].querySelectorAll('td')[2]; // получили из 2й по счёту строки, третью по счёту ячейку
    console.log(td);


    ох, это про php.
    извините :D
    Ответ написан
    2 комментария
  • Как реализовать отслеживание выбора select2?

    sergski
    @sergski
    web-developer
    У select2 есть собственные события, например
    let getVal = undefined;
    
    $('select').select2().on('change.select2', function(e) {
        getVal = e.target.value;
    });
    
    if ( getVal == 'option1') {
    	// делаем видимым текст1 
    }
    Ответ написан
    2 комментария
  • Как в echo вставлять условия?

    Max_Cohen
    @Max_Cohen
    Программист, который не программирует
    echo 'Бла-бла-бла. '. (($a > $b) ? 'a больше, чем b' : 'a НЕ больше, чем b'). '. Бла-бла-бла';
    Ответ написан
    Комментировать
  • Как убрать браузерную обводку у кнопок (появляющуюся в состоянии :focus) в Chrome и Firefox?

    wprivalov
    @wprivalov
    Разрабатываю сайты на токарном станке)
    для bootstrap 4 (100% рабочий вариант):

    a.active.focus,
    a.active:focus,
    a.focus,
    a:active.focus,
    a:active:focus,
    a:focus,
    button.active.focus,
    button.active:focus,
    button.focus,
    button:active.focus,
    button:active:focus,
    button:focus,
    .btn.active.focus,
    .btn.active:focus,
    .btn.focus,
    .btn:active.focus,
    .btn:active:focus,
    .btn:focus {
    outline: 0!important;
    outline-color: transparent!important;
    outline-width: 0!important;
    outline-style: none!important;
    box-shadow: 0 0 0 0 rgba(0,123,255,0)!important;
    }
    Ответ написан
    4 комментария
  • Как можно использовать результат запроса из другого файла?

    @rPman
    Предпологаю что речь идет о веб бакэнде - приложении, запускаемом на веб сервере по запросу из браузера. И главное, предполагаю что используется cgi подход, когда на каждый запрос из браузера запускается отдельный процесс php (даже если это модуль веб сервера, он конечно оптимизируется до асинхронных потоков) но содержимое памяти каждый раз пустое.

    Если у тебя mainpage.php и poisk.php это разные запросы, то через глобальные переменные данные между ними не передать.

    Нужна какая-нибудь база данных, чем бы она не являлась, например:
    * хранить в специальных заголовках запроса - cookies, эти данные как мяч будут автоматически передаваться между клиентом и сервером, т.е. все запросы от клиента будут содержать копию всех установленных cookies, до истечения их времени жизни
    * переменные сессии (используются cookies автоматически)
    сессия доступна сразу после session_start() а данные через ассоциативный массив $_SESSION (автоматически сохраняется по окончанию скрипта, учти это при параллельных запросах), идентификатор сессии автоматически поддерживается в заголовках запроса (сессия стартует когда пользователь открывает сайт, и единая для других окон, адже после перезапуска браузера, время жизни опция cookie_lifetime)
    Очень часто идентификаторы сессии или специально созданное значение в ней используется как идентификатор для поиска данных в других местах (например БД)
    * можно использовать файлы, в которых данные хранятся в сериализованном виде, в php штатно работает var_export/eval, serialize/unserialize, json_encode/json_decode - текстовые и бинарный igbinary_serialize/igbinary_unserialize (очень эффективный формат) или свой собственный, по желанию
    * можно использовать базу данных, начиная с sqlite (размещается в файле но работа с помощью sql), настоятельно рекомендую PDO - универсальная прослойка для работы с реляционными БД
    * есть еще всякие memcache, apcu, или к примеру самописный сервер данных (на сокетах и не только) но применимость - отдельный разговор

    p.s. есть иной подход, когда на php пишется полноценный веб сервер, принимающий http запросы (его напрямую редко пускают в интернет, обычно ставят еще какой-нибудь nginx для поддержки ssl и других тонкостей), в этом случае php приложение скорее всего - один инстанс (один процесс), который не завершается по завершению запроса, обрабатывает запросы клиентов асинхронно, в этом случае глобальные переменные будут доступны между запросами.
    Ответ написан
    3 комментария
  • Скрыть\показать блок по клику js?

    y0u
    @y0u Куратор тега JavaScript
    dev
    1 способ
    в JS:
    document.getElementById('hider').onclick = function() {
      document.getElementById('config-btn').classList.toggle('hidden');
    }

    в CSS:
    .hidden {
      display: none;
    }


    2 способ
    document.getElementById('hider').onclick = function() {
    	var el = document.getElementById('config-btn');
      el.style.display === 'none' ? el.style.display = 'initial' : el.style.display = 'none';
    }
    Ответ написан
    2 комментария
  • Как сделать, чтобы div подстроился под высоту окна браузера?

    @IoannGrozny
    Front-end разработчик
    Зависит от контекста. Для современных браузеров подойдёт решение с CSS3 единицами 'vh';
    Для старых браузеров придётся задействовать javascript и отслеживать высоту экрана.
    caniuse.com/#feat=viewport-units - первый вариант, height: 100vh соответствует высоте окна браузера.
    https://api.jquery.com/height/ - второй вариант, $(window).height вернёт высоту окна браузера.
    По первому варианту:
    #hei {
        height: 100vh; /* 100vh - 100% от высоты viewport(окна браузера) */
    }

    По второму варианту:
    function setHeiHeight() {
        $('#hei').css({
            height: $(window).height() + 'px'
        });
    }
    setHeiHeight(); // устанавливаем высоту окна при первой загрузке страницы
    $(window).resize( setHeiHeight ); // обновляем при изменении размеров окна
    Ответ написан
    8 комментариев
  • Как обновить страницу без кэша?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    В настройках консоли
    823188231e6b47e48cd10fea1a7d50de.png
    Ответ написан
    1 комментарий
  • Как можно добиться чтобы при выводе строки в посредством JavaScript не игнорировались значения в class="..."?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Посмотрите в dev-tools что реально записывается. Атрибут class там по-любому есть.

    Скорее всего, вы просто ошиблись в наименовании класса, вот стили и не применяются.
    Ответ написан
    9 комментариев
  • Как переместить элемент li по клику?

    Ragtime_Kitty
    @Ragtime_Kitty
    В общем сори, но разобрать, что у вас там я не смогла.
    Пусть будет по новой.

    Суть: по клику вешаем класс "selected", по клику на кнопку копируем элементы с классом "selected", вставляем их во второй список и удаляем их из первого.



    Бедный код пэн, который день уже беднягу дудосят :(
    Ответ написан
    2 комментария
  • Отправка формы без перезагрузки страницы?

    slo_nik
    @slo_nik Куратор тега PHP
    Доброе утро.
    Передайте в функцию e и добавьте параметр e.preventDefault()
    $("#form").submit(function (e) { // Устанавливаем событие отправки для формы с id=form
               e.preventDefault();
                var form_data = $(this).serialize(); // Собираем все данные из формы
                $.ajax({
                    type: "POST", // Метод отправки
                    url: "public/script/send.php", // Путь до php файла отправителя
                    data: form_data,
                    success: function () {
                        // Код в этом блоке выполняется при успешной отправке сообщения
                        alert("Ваше сообщение отправлено!");
                    }
                });
            });
    Ответ написан
    3 комментария
  • <input> на всю ширину

    alexbaum
    @alexbaum
    JS-разработчик, наставник.
    Ответ написан
    Комментировать