За последние 24 часа нас посетил 19201 программист и 1647 роботов. Сейчас ищут 1005 программистов ...

большой php файл не выполняется на сервере

Тема в разделе "PHP для новичков", создана пользователем maxymov, 23 дек 2013.

  1. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    Пробую выполниться файл php, размером чуть больше 30 мб.
    Сам файл формируется с помощью парсера товаров, служит для правки цен товаров(если цена например упала или подорожала на сайте поставщика)
    Файл успешно загружается на сервер, но отказывается выполняться(появляется просто белое окно в браузере).
    Если раскидываю данные с файла по 3 файлам по 10 мб то они успешно выполняются.
    Пробовал отредактировать php.ini но там не сильно селен, пожалуйста подскажите что нужно править что бы выполнялись большие php файлы.
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Вот оно, следствие закона Мура ) Можно глянуть кусок файла?

    Я к тому что возможно стоит оптимизировать сам процесс. Скажем вместо длинных пхп файлов скидывать массив типа:
    Код (Text):
    1. [{"id":111,"newPrice":999}]
    На стороне клиента уже его разобрать по запросам.
     
  3. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    Да возможно, имел бы побольше навыков неверное бы правил. Но просто использую купленный парсер товаро, сильных навыков править такие скрипты не имею.
    Хотел бы как то поправить php.ini или еще какие то параметры. Что бы такие файлы php в 30-40 мб запускались на сервере.
    Посоветуйте пожалуйста как можно настроить php.ini что бы такие файлы запускались.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Так и хочется сказать, что "теперь я видел все", но каждый раз находится что-то новое. Вот и теперь. Обращайтесь к тому, у кого купили парсер, чтобы они сами разгребали свою бажню, им деньги уплочены :)
     
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    угу. В крайнем случае придется покупать парсер для парсера )
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Ого. Мои парсеры сразу данные в БД пишут, а не создают отдельный скрипт весом в 30 мБайт, чтоб потом его отдельно надо было запускать...
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я б хотел глянуть чо оно там генерит кстати. интересно же.

    Добавлено спустя 54 секунды:
    это уже стандарт общения что ли?
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    нет, просто он не сильно селен.
     
  10. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    это обычная опечатка, думаю издеваться над таким не стоит, лучше предложить что то поконкретней.
    Например увеличить память под php скрипты, как посоветовали на другом форуме..и все работает.
    Насчет "обращаться к разработчику", он хочет деньги еще 50$-100$ за доработку...так как выполнял работу под мой заказ.
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    На эту тему есть анекдот.

    Пришла бабка ко врачу:
    -Дохтур, спина болит, ничего делать не могу!
    -Ну-ка наклонись. Болит?
    -Болит!
    -Еще наклонись!
    -Болит болит!
    -Еще наклонись!
    *ХРРРРРРРРРРРРЯСЬ*
    -ОЙ! Не болит, милок!
    -Збс, теперь так и ходи.
     
  12. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А потом может не работать по времени выполнения, ограничения на количество и размер запросов и хз чего ещё. Костыли до добра не доводят )
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Покажи код
     
  14. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    это код для правки цены одного из товаров(а так же его отключение)
    Код (Text):
    1. /////////////Правим цену товара
    2.                                                                 $result_name_id = mysql_query("SELECT * FROM `oc_product_description` WHERE `name` = 'ДЕШЕВЛЕ НЕТ! Стильная женская сумка под заказ'");
    3.                                                                 $row_name_id = mysql_fetch_array ($result_name_id);
    4.                                                                 $row_num =  mysql_num_rows($row_name_id);      
    5.                                                                 if ($row_num  <= 1 )
    6.                                                                         {
    7.                                                                                 do
    8.                                                                                         {                      
    9.                                                                                                 $product_id = $row_name_id['product_id'];
    10.                                                                                         }
    11.                                                                                 while ($row_name_id = mysql_fetch_array ($row_name_id));
    12.                                                                         }
    13.                                                                 else
    14.                                                                         {
    15.                                                                           echo "<font color='red'>Товаров больше чем 1, редактируй сам</font>";
    16.                                                                         }
    17.                                                                 $price_actual_product_grn = round ((34.8 * 8.30 * 1.25), 0);
    18.                                                                 $str_sql_query_price = "UPDATE `oc_product` SET `price` = '' WHERE `product_id` = '$product_id'";
    19.                                                                 $res_price = mysql_query($str_sql_query_price);        
    20.                                                                 echo "<tr><td><a href='/index.php?route=product/product&product_id=$product_id'>ДЕШЕВЛЕ НЕТ! Стильная женская сумка под заказ</a></td>";
    21.                                                                 echo "<td>$product_id</td>";
    22.                                                                 echo "<td>32.7</td>";
    23.                                                                 echo "<td>34.8</td>";
    24.                                                                 echo "<td>$price_actual_product_grn</td>";
    25.                                                                 echo "<td>OK</td></tr>";
    26.                                                                 /////////////Отключаем товар
    27.                                                                 $result_name_id = mysql_query("SELECT * FROM `oc_product_description` WHERE `name` = '--НОВИНКА-- Качественная женская сумка'");
    28.                                                                 $row_name_id = mysql_fetch_array ($result_name_id);
    29.                                                                 $row_num =  mysql_num_rows($result_name_id);  
    30.                                                                 if ($row_num  <= 1 )
    31.                                                                         {
    32.                                                                                 do
    33.                                                                                         {                      
    34.                                                                                                 $product_id = $row_name_id['product_id'];
    35.                                                                                         }
    36.                                                                                 while ($row_name_id = mysql_fetch_array ($result_name_id));
    37.                                                                         }
    38.                                                                 else
    39.                                                                         {
    40.                                                                           echo "<font color='red'>Товаров больше чем 1, редактируй сам</font>";
    41.                                                                         }
    42.                                                                 $str_sql_query_disable = "UPDATE `oc_product` SET `status` = '0' WHERE `product_id` = '$product_id'";
    43.                                                                 $res_price = mysql_query($str_sql_query_disable);
    44.                                                                 echo "<tr><td><a href='/index.php?route=product/product&product_id=$product_id'>--НОВИНКА-- Качественная женская сумка</a></td>";
    45.                                                                 echo "<td>$product_id</td>";
    46.                                                                 echo "<td>26</td>";
    47.                                                                 echo "<td>26</td>";
    48.                                                                 echo "<td>$price_actual_product_grn</td>";
    49.                                                                 echo "<td>Товар недоступен</td></tr>";
    но уже все работает. Увеличил ресурсы теперь 30 мегабайтные пхпшники с таким кодом выполняются. Так же все таки подправил и подстраховался теперь файл разбиваеться по 10 мб, вдруг на другом хостинге не будет возможности расширить ресурсы.

    Fell-x27 здесь вроде не тема для анекдотов))) наверное вы ошиблись форумом!
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Да нет, то, что вы описываете, как раз воспринимается как анекдот, рассказанный Fel-x27. За свою недолгую карьеру программиста мне, к сожалению, пришлось написать уйму парсеров, в том числе один, который грабит товары с целого магазина. Но ни один из них не создавал отдельный php-файл размером в 30 Мбайт, который нужно выполнить, чтоб увидеть результаты парсинга...
     
  16. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    mkramer я вас поздравляю, с тем что у вас так все получалось. За ранние в теме обсуждалось "выполнение больших файлов", а не то кого какие парсеры, и какие можно сочинить анекдоты про такие файлы.
    Тема закрыта. Спасибо всем за помощь.
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. $row_num = mysql_num_rows($row_name_id);
    2. if ($row_num <= 1) {
    3.   do {
    4.     $product_id = $row_name_id['product_id'];
    5.   } while ($row_name_id = mysql_fetch_array($row_name_id));
    6. }
    ой как всё запущено...

    Добавлено спустя 4 минуты 1 секунду:
    да, всё плохо. работать быстро это не будет в принципе. надо менять подход. весь. включая твой.
     
  18. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    За код спасибо, буду править как будут возможности.
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код в лучших традициях Попова. Не удивительно, что вам такую содомию накодили те ребята.
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я ничего не исправил. это кусочек вашего кода. исправлять там нет смысла. запросы идут по одному, и скорость выполнения этого дела там всегда будет ниже плинтуса.

    Добавлено спустя 54 секунды:
    Это всё. это приговор. Этот скрипт не подлежит починке и доработке. не странно, что автор просит денег. он просто думает, что вы отлипните от него и досвидос.

    судя по тому, что скрипт написан сообразно вашим пожеланиям, то вам ваши пожелания стоит сменить.
     
  21. maxymov

    maxymov Активный пользователь

    С нами с:
    15 мар 2013
    Сообщения:
    24
    Симпатии:
    0
    да возможно,но пока возможностей купить что то другое нету( пока придется довольствоваться тем что есть...и самому по немного что править..и что то дорабатывать
     
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда время выполнения скрипта не лимитировать, памяти по-больше, и запасаться терпением.