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

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
    Комментировать
  • Безопасно ли записывать "секретные" данные в txt-файл с именем из кракозябр (например salkgkawj2145lkjsalfkj@24lkjl), который открыт для чтения?

    syschel
    @syschel
    freelance/python/django/backend
    Не безопасно, вспомним утечки всех СМСок у крупных сотовых операторов лет 5 назад.

    Можно хранить в тхт файлах, но раз есть пхп на сервере, то через него и отдавать. То есть "база" из файлов лежит в папке, к которой из вне не попасть, но сам пхп может смотреть папку и вычитывать файлы. Вот этот пхп пускай на время сессии и выдаёт контент файлов. Этот же пхп файл определяет и права на доступ к данным, если там многопользовательский вариант или просто парольный доступ.
    Через мод_реврайт, можете симулировать расширение .txt в адресной строке, а через контент тип формат text.
    Ответ написан
    Комментировать
  • Как правильно спарсить данные и записать их в БД?

    syschel
    @syschel
    freelance/python/django/backend
    Ищешь уникальное значение (поле) которое есть у всех записей. По нему и сравниваешь. Если в базе есть с таким значением в этом поле запись - обновляем, если нет то создаём. В базе можно даже принудительно сделать данное поле уникальным, что бы ругалось при дублях.

    З.Ы. Не плохо бы указывать и базу данных и тип данных (хотя бы откуда они берутся), для нормального ответа, а не угадывания мыслей..
    Ответ написан
  • Создание веб-страниц сайта на базе готовой БД. Как?

    syschel
    @syschel
    freelance/python/django/backend
    Вот здесь лежит цмс, которая вам нужна. Другого решения нету.
    Ответ написан
    1 комментарий
  • Будет ли работать mysql с нагрузкой примерно триллион записей?

    syschel
    @syschel
    freelance/python/django/backend
    Проблема врятли будет в самой базе данных. Как правило всё упирается в три вещи:
    1. Сами запросы и оптимизация их.
    2. Конфигурация базы данных и самого сервера. Ну и правильно расставленные индексы.
    3. Ресурсы сервера с базой данных.
    Ответ написан
    Комментировать
  • Какой делать выбор ученику закончивший 11 класс?

    syschel
    @syschel
    freelance/python/django/backend
    Если не хватает личного самоконтроля, тогда да - ехать в другое место. ВУЗ выбирать всётаки по отзывам выпускников и учащихся. Думаю найти в социалках не официальные группы факультетов не проблема. Ибо не везде дадут качественные и нормальные знания.

    Но самое главное, без самообразования и практики, ни один ВУЗ в IT специальности в странах СНГ ни черта не даст. Вуз даёт только фундамент, очень нужный фундамент. Тот на который самоучки обычно не обращают внимание и с годами некоторые жалеют. Особенно когда начинают работать с большими и серьёзными проектами, с большой нагрузкой. Это всё базовые вещи. Они помогут быстрее искать решения, но не всегда дадут сами решения. И обязательно, начав учиться, ищи работу (подработку) по теме будущей специальности, а не левой вроде макдака или ночного сторожа в садик. Работая с реальными, а не теоретическими задачами, больше знаний впитаешь и опыт работы подкопишь. А он в сфере IT сейчас играет главную роли, если не идти в гугл или майкрософт, там просят корочки. Теоретические, тестовые, учебные задачи, дают мало реальной практики и мало пригождаются в жизни. Ибо как не печально, в большинстве ВУЗов СНГ, тема IT отстаёт от текущих реалий лет на 20-30. А специфика у нас такова, что за год успевают появится десятки новых технологий и умереть десятки старых. По этому работа по профилю, пускай в начале "за еду". Через годик "практики", переведёшся на другую работу если что.

    Советчиков про "корочки" не слушай. Я вот самоучка в программировании. И за десять лет работы в сфере, понял, что базовых знаний ВУЗа, мне сильно не хватает. А там, за время учёбы, много чего в голову напихают. Многое не осядет, но хотя бы маркеры в памяти останутся, на то куда смотреть и что искать. Первые лет 8, пока занимался мелочовкой и середняком. Знаний самоучки и гугла хватало. Даже считать себя начал крутым программистом. Как столкнулся с большими командными проектами, а в команде увидел таких же "самоучек", но заканчивавших ВУЗ по IT специальностям, сразу увидел свой уровень. Единственное с чем соглашусь, что цена диплома никакая на рынке труда, без опыта работы. Но вот знания что дают, даже в паршивом месте, с этим не согласен.

    P.S. Пока молодой. Обязательно иди учится по специальности и обязательно заканчивай, не бросая на полпути. В 30-40 лет, когда будет семья, дети, работа. Будет сложнее, да и уже "поздно".
    Ответ написан
    4 комментария
  • Как примерно описать состав команды для разработки интернет проекта?

    syschel
    @syschel
    freelance/python/django/backend
    Не понятен объём задачи. Для второго Google перечисленных слишком мало, для сайта визитки слишком много. Что вы вкладываете в понятие "интернет проект"?
    Ответ написан
    2 комментария
  • У кого есть скрипт простейшего миничата?

    syschel
    @syschel
    freelance/python/django/backend
    Вас в google забанили?
    https://www.google.ru/search?q=мини+чата+php
    Ответ написан
    Комментировать
  • Куда перейти с php?Python или Ruby?

    syschel
    @syschel
    freelance/python/django/backend
    Если отталкиваться только от критериев:
    1. Востребовано
    2. Много платят

    То ИМХО, не верное направление мысли. Нужно развивать свой уровень в одном направлении, а не шарахаться во все стороны на полумерах. Ибо хороший высококлассный специалист на PHP, будет более востребован и с большим окладом. Чем посредственный программист на Py/Ru.
    Ответ написан
    Комментировать
  • Как сделать правильные пути к файлам css/js на всех страницах сайта?

    syschel
    @syschel
    freelance/python/django/backend
    Правильно:
    /templates/css/style.css

    Не правильно:
    ./templates/css/style.css.

    Не правильно:
    templates/css/style.css.

    Прочитайте про относительные и абсолютные пути.
    Ответ написан
    4 комментария
  • Как создать-настроить триггер в mysql?

    syschel
    @syschel
    freelance/python/django/backend
    Вы базу убьёте. При наплыве пользователей и их активности, у вас очередь будет из сотен "триггеров" на обновление всех пользователей. По вешайте лучше на крон пересчёт каждые N минут.

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

    syschel
    @syschel
    freelance/python/django/backend
    Тут смотреть только в ту часть кода, которая отвечает за авторизацию. И дорабатывая её, а уже с этим воевать.
    Просто так, зашёл и получил список пользователей онлайн, только на основании, что у них открыта сессия, нельзя. Или писать мега великий бубен с чтением файлов сессии с HDD сервера. Но их никто не писал никогда и не пишет. Только если какой "хакер", получил доступ к чужому сайту и хочет "подсмотреть" кто из пользователей онлайн. Да и то не будет заморачиваться таким способом.
    Дорабатывают систему авторизации обычно, через дататайм авторизации и последующем его обновлением при гуляние по сайту. А потом смотрят, кто авторизировался за последние 5-10-15 минут.
    Ответ написан
    Комментировать
  • Как скрыть значение "0" (Ноль) ?

    syschel
    @syschel
    freelance/python/django/backend
    <?php if($msg_cnt) echo $msg_cnt; ?>
    <?php if($msg_cnt!=0) echo $msg_cnt; ?>
    <?php if($msg_cnt>0) echo $msg_cnt; ?>
    Ответ написан
    Комментировать
  • Как сделать переход по ссылке и отловить редирект?

    syschel
    @syschel
    freelance/python/django/backend
    1. Сессия
    2. БД
    3. Глобальные переменные ($GLOBALS)
    Ответ написан
    Комментировать
  • Имеет ли смысл полный рабочий день для программиста? Производительность труда?

    syschel
    @syschel
    freelance/python/django/backend
    Лично я точный ответ дать затрудняюсь. Хотя и сам веб-программист почти 10 лет. Порой зависит от проекта. Один проект хочется делать и делать. Сначала делаешь на работе, задерживаясь на час-два в офисе, потом приходишь домой и поужинав до поздней ночи сидишь и делаешь его.
    А порой, особенно если штамповка, даже пара часов работы уже вгоняет в уныние. Выручает при штамповке, как правило, отдельная доп оплата за каждый такой штамп. И тут уже интерес на штамповать побольше.
    Ответ написан
    Комментировать
  • Помогите найти уязвимость php

    syschel
    @syschel
    freelance/python/django/backend
    В более менее нормальной системе, невозможно писать в БД, даже зная логин пароль, так как указывается при подключении к БД ip адрес конкретного сервера(ов).

    Угу. Только вот большинство сайтов крутятся на хостинг площадках, а не на ВДС/ВПСах у владельцев сайтов.
    Зная логин и пароль к БД:
    1. Смотрим по вхъюсам, куда ссылается домен (НСы). В 99% это будет хостер.
    2. Заходим на хостинг, смотрим фак как добраться до пхпмайадмину(если майскул). В 98% ссылка на него будет в свободном доступе от самого хостера. Или будет гуглитсмя за 3 минуты.
    3. Делаете в базе что хотите.
    Ответ написан
    1 комментарий