PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 18
tisar Отправлено: 27 Июля, 2011 - 21:12:23 • Тема: Защита при использовании eval() • Форум: Хранение данных, их вывод и обработка

Ответов: 12
Просмотров: 8110
JustUserR пишет:
В силу того что PHP является динамическим языком программирования с роизвольным уровнем вложения динамических элементов - то ваша защита может быть обойдена с помощью функции create_function код который является строковой константой - и может содержать через конкатенацию или экранирование или шифрование любую из вышеуказанных функций Аналогичным образом использование библиотеки runkit позволяет динамически модифицировать код любых функций - и по аналогии использовать в них любые операторы Кроме того начиная с PHP5.3 функции становятся объектами первого рода и их также можно динамически генерировать


А разве проверка строк кода на наличие выше описанные функции и при их обнаружении запрет исполнения кода не решит вопрос безопасности? Мне с помощью eval() необходимо выполнять только математическии операции. Причина использования функции eval: http://forum.php.su/topic.php?fo...1&topic=7841

P.S.: Извините за поднятие древней темы, но меня так же как и автору появилась потребность использовать функцию eval.
tisar Отправлено: 27 Июля, 2011 - 20:30:52 • Тема: Создание конфигуратора для создания формул расчёта • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 78
дубль
tisar Отправлено: 27 Июля, 2011 - 08:06:19 • Тема: Создание конфигуратора для создания формул расчёта • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 78
eval функция хорошая, на при её использовании не очень хорошо обстоит дело с безопасностью.

Может быть есть вариант реализации выше описанного без eval?
tisar Отправлено: 27 Июля, 2011 - 06:26:29 • Тема: Создание конфигуратора для создания формул расчёта • Форум: Напишите за меня, пожалуйста

Ответов: 5
Просмотров: 78
Здравствуйте.
Подскажите пожалуйста как можно реализовать ниже описанное, уже весь мозг изломал не могу придумать как такое сделать.

Ситуация:
Имеется программа написанная на php для внутреннего пользования в фирме, а именно полный учёт работы компьютерного сервис центра от сбора информации о заявках на ремонт, вывода статистики, до расчёта зарплаты. Раньше все формулы и условия для расчётов прописывались в коде.

Задача:
Теперь требуется создать конфигуратор для задания условий расчёта и составления формул по которым будут производится расчёты. Имеются различные переменные и массивы с данными.

Например:

Имеется заявка по ремонту ПК, для расчёта зарплаты имеют значение следующие параметры: тип заявки (дневная, вечерняя), тип выезда (в городе, за городом), сумма оказанных услуг и т.д. (для примера хватит и этого)

В зависимости от этих параметров будет выбирается формула для расчёта.

На данный момент я не знаю каким образом мне в конфигуратор предать переменные, сохранить после набора формулы и при выполнении расчётов их разобрать и подставить данные из переменных. С условиями применения формул я примерно представляю как можно разобраться, но формулы полный тупик.
tisar Отправлено: 21 Декабря, 2010 - 14:42:58 • Тема: Регулярные выражения • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1296
скопируйте ВЕСЬ html код отображающейся в браузере на сайт http://regexpal[dot]com/ и примените свою регулярку и проверте будет работать или нет.
У меня подозрения что у вас получившейся текст немного не такой в котором вы ищете
tisar Отправлено: 21 Декабря, 2010 - 14:37:31 • Тема: Регулярные выражения • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1296
Budulianin пишет:
почему то он всё равно та не работает


выведите текст в котором ищешь данный текст и посмотри в чём точно ищешь. + что содержится в MasRes после поиска?
(Добавление)
А вообще используйте тестер регулярных выражений:
http://regexpal[dot]com/
http://www[dot]pcre[dot]ru/eval/
tisar Отправлено: 21 Декабря, 2010 - 14:17:43 • Тема: Регулярные выражения • Форум: Программирование на PHP

Ответов: 10
Просмотров: 1296
в коде не пробовал, но регулярное выражение правильное, в тестере всё работает нормально
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.pcre.ru/eval/%3Cdiv%20class%3D%5C%22green%5C%22%3E(.*)%3C%5C%262f%3Bdiv%3E%40%3D%23%3D%40101%40%3D%23%3D%40%3Cdiv%20class%3D%22green%22%3E%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA%20%D0%B8%D0%B7%20%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85%20%D0%B1%D1%83%D0%BA%D0%B2%3C%262f%3Bdiv%3E/
tisar Отправлено: 20 Декабря, 2010 - 18:44:49 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
Все тесты проводились на localhost (Denver), так что сетевые задержки можно исключить. Хочу с начало всё отладить на localhoste, а уже потом когда допишу всё требуемое, выносить на сервер.
В такой же теме на форуме antichat (https://forum[dot]antichat[dot]ru/thread248758[dot]html ) было выдвинуто предположение что у меня скрипт упирается в допустимое количество потоков Апача. Я тоже к этому склоняюсь.
Загрузка тех же 500 файлов в 24 потока происходит за 3 секунды, а в 25 потоков за 161 секунду.
В настройках (c:\WebServers\usr\local\apache\conf\extra\httpd-mpm.conf) в Апаче нашёл переменную ThreadsPerChild =25 изменил на 60 и всё заработало.


JustUserR пишет:
У меня есть подозрение, что usleep можно уменьшить или убрать

после убирания задержки, 1 ядро ЦП загружено на 100% в течение всего времени работы скрипта.

Всем большое спасибо за участие в теме.
tisar Отправлено: 19 Декабря, 2010 - 14:44:07 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
Champion пишет:
Сколь ко времени выполняется

лог работы с usleep(50):
Цитата:
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)0/0. Колличество загрузок(потоков):1

Затрачено времени на загрузку контрольного файла: 0
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)17/17. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)1/1. Колличество загрузок(потоков):1


Всего файлов/Ошибок: 500/0

Затрачено времени: 162


лог работы без usleep
Цитата:
ункция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)0/0. Колличество загрузок(потоков):1

Затрачено времени на загрузку контрольного файла: 0
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)17/17. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16/16. Колличество загрузок(потоков):50
Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)0/0. Колличество загрузок(потоков):1


Всего файлов/Ошибок: 500/0

Затрачено времени: 161


т.е. 99% времени выполняется загрузка файлов, только почему так долго??
(Добавление)
Статистика работы цикла do while
    Загружено: 3 за 0.140714883804
    Загружено: 1 за 0.000761985778809
    Загружено: 1 за 0.0652120113373
    Загружено: 4 за 0.19765996933
    Загружено: 15 за 0.00912094116211
    Загружено: 1 за 7.74062299728
    Загружено: 3 за 0.00156712532043
    Загружено: 1 за 0.000958919525146
    Загружено: 1 за 0.0139629840851
    Загружено: 3 за 0.0597929954529
    Загружено: 2 за 0.0270190238953
    Загружено: 8 за 0.00556087493896
    Загружено: 2 за 0.017627954483
    Загружено: 3 за 0.061870098114
    Загружено: 1 за 7.82833409309
    Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)16.1831879616/16.1735069752. Колличество загрузок(потоков):50


Из чего видно что по какой то причине некоторые файлы загружаются очень медленно 7 секунд
tisar Отправлено: 19 Декабря, 2010 - 08:49:43 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
[quote=OrmaJever]Ладно обьясню понятным способом на примере вашего скрипта.
В функцию multiCurl передаются масив $data каждое значение это название файла. Затем вы его помещаете в цыкл foreach для разбора масива.
За одни проход цыкл отдаёт одно значение, затем это значение попадает в curl и пока это одно значение НЕ обработается цыкл не даст 2 значение. И по этому у вас получается проходоы цыкла столько сколько и файлов!
Понятно причём здесь пхп?[/quote]

1) OrmaJever если вы не разу не пользовались multiCurl, то зачем лезть в тему?
2) В самом конце работы цыкла foreach есть функция
CODE (htmlphp):
скопировать код в буфер обмена
  1. // добавляем текущий механизм к числу работающих параллельно
  2.                 curl_multi_add_handle($mh, $curls[$IdRequest]);

в коментарии всё описано
[quote]Где вы устанавливаете потоки? Как курл понимает что вам нужно имено 50 потоков?[/quote]
ответил выше
[quote]по второй сылке ничего не сказано про многопоточность. А вот по первый написан такой же бред как и тут.[/quote]
найдите следующий абзац, там всё написано
Спойлер (Отобразить)


[quote]Прочитайте описание функции на этом сайте. http://php.su/functions/?curl-multi-init там на жолтеньком написано Внимание[/quote]
то что на данном ресурсе информации об этой функции нет не означает что её нет вообще. Обращайтесь к первоисточникам: http://ru2.php.net/manual/en/fun...l-multi-init.php

[quote=OrmaJever]Если бы так было была бы сказка [quote]
про эту сказку спросите у одного из более опытного участника (http://forum.php.su/topic.php?fo...31566#1274431566 ) данного форума, раньше когда у меня возникали вопросы про multiCurl он мне хорошо помог
tisar Отправлено: 19 Декабря, 2010 - 00:21:15 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
OrmaJever пишет:
tisar пишет:
Уважаемый curl это не отдельная програма и она не может работать паралельно! curl работает вместе с php а php читает скрипт по одной строчке и выполняет. И никакой многопоточности тут нету. В перле есть многопоточность.


Я согласен что php нет многопоточности. multiCurl одновременно отправляет n запросов и собирает ответы и выдаёт все n ответов скрипту которые уже обрабатывает данные.
Время загрузки файлов будет равно времени загрузки самого 'медленного файла'. Быстрее получить разом n ответов чем n раз запрашивать данные т.е. во втором случае время загрузки будет складываться из времени загрузки всех файлов по очереди.

OrmaJever пишет:
tisar пишет:
Оу я думал вы их с удалёного сервера берёте.
А зачем для локалхоста использовать curl? copy() например уже не в щёт?

Это делается для тестирования чтобы избавиться от максимально возможного количества задержек. Вот именно потому что я беру файлы с localhost меня и поражает такое долгое время загрузки. как я уже писал выше при однопоточной загрузки загрузка всех файлов выполняется за 9 секунд, а при многопоточной она должна выполняться вообще за доли секунд.

Я хотел бы услышать комментарии от человека который использовал multiCurl и мог бы подсказать почему такая хрень происходит.
tisar Отправлено: 18 Декабря, 2010 - 23:39:26 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
OrmaJever пишет:
50 потоков? Это как? пхп изначально не имеет многопоточности. Я конешно могу ошибатся.


а при чём тут php? Cyrl это отдельная библиотека которая выполняет запросы параллельно.
Про multiCurl: http://job-interview.ru/articles/post/67, http://php.su/lessons/?lesson_11.

OrmaJever пишет:
А так впринципе ничего страного. Для 500 файлов это обычное время.а при чём тут php?

Не знаю как у вас но у меня копирование 500 файлов размером 13 байт происходит за несколько секунд. Насколько мне видится единственным ограничением на скорость загрузки файла будет время чтения его с HDD и обработки его WEB сервером, если бы файлы лежали где нибудь удалённо то ещё добавилось бы время задержки ответа и ограничения связанные со скорость Интернет канала.
В данном случае все файлы лежат на localhoste т.е. остаётся только время чтения файла с HDD и время обработки его WEB сервером. Счем может быть связана более чем 170 кратная задержка в работе мне совершенно не понятно???? При запуске в одно поточном режиме те же 500 файлов загружаются за 9 секунд
tisar Отправлено: 18 Декабря, 2010 - 22:16:59 • Тема: Медленно работает многопоточная загрузка multiCurl • Форум: Программирование на PHP

Ответов: 11
Просмотров: 2314
Здравствуйте.
Ситуация следующая.
Имеется скрипт для многопоточной загрузки с использованием multiCurl. Так вот по моему мнению он работает как то очень медленно на localhost`е(Denver) при работе в 50 потоков 500 файлов размером 13 байт загружались 161 секунд. Встречал сообщения что multiCurl запускали работать и на [URL="http://forum.searchengines.ru/showpost.php?p=4090238&postcount=66"]1000 потоков[/URL] и всё работало.

В производительность компьютера скрипт точно не упирается (Core 2 Duo E8500, ОЗУ 4 Гб) повышения потребления памяти не заметил, загрузка ЦП 5-10%.

PHP:
скопировать код в буфер обмена
  1. function multiCurl($data) //Многопоточная загрузка данных
  2. {
  3.         $time1=time();
  4.         $curls = array();
  5.         // Массив дескрипторов. Библиотека создает много экземпляров своего
  6.         // механизма, но работать они будут параллельно
  7.  
  8.         $result = array();
  9.         //массив с результатами запрошенных страниц которые наша функция вернет.
  10.  
  11.         $mh = curl_multi_init();
  12.         // Дескриптор мульти потока. Тоесть эта штука отвечает за то, чтобы много
  13.         // запросов шли параллельно.
  14.  
  15.         $uagent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8";
  16.  
  17.         $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
  18.         $header[] = "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3";
  19.         $header[] = "Accept_charset: windows-1251,utf-8;q=0.7,*;q=0.7";
  20.         $header[] = "Accept_encoding: gzip,deflate";
  21.         $header[] = "Keep_alive: 300";
  22.         $header[] = "Connection: keep-alive";
  23.  
  24.         foreach ($data as $IdRequest => $DataRequest) //Создание потока для закачки
  25.         {
  26.                 $curls[$IdRequest] = curl_init(); // Для каждого url создаем отдельный curl механизм чтоб посылал запрос)
  27.  
  28.                 curl_setopt($curls[$IdRequest], CURLOPT_URL, $DataRequest['url']);
  29.                 curl_setopt($curls[$IdRequest], CURLOPT_RETURNTRANSFER, 1);
  30.  
  31.                 curl_setopt($curls[$IdRequest], CURLOPT_HEADER, 0);
  32.        
  33.                 curl_setopt($curls[$IdRequest], CURLOPT_HTTPHEADER , $header);
  34.                 curl_setopt($curls[$IdRequest], CURLOPT_RETURNTRANSFER, 1);   // возвращает веб-страницу
  35.                 curl_setopt($curls[$IdRequest], CURLOPT_ENCODING, "");        // обрабатывает все кодировки
  36.                 curl_setopt($curls[$IdRequest], CURLOPT_USERAGENT, $uagent);  // useragent
  37.                 curl_setopt($curls[$IdRequest], CURLOPT_CONNECTTIMEOUT, 25); // таймаут соединения
  38.                 curl_setopt($curls[$IdRequest], CURLOPT_TIMEOUT, 25);        // таймаут ответа
  39.  
  40.                 curl_setopt($curls[$IdRequest], CURLOPT_FOLLOWLOCATION, 0);   // переходит по редиректам
  41.                 //curl_setopt($curls[$IdRequest], CURLOPT_MAXREDIRS, 1);        // останавливаться после 1-ого редиректа
  42.  
  43.                 // добавляем текущий механизм к числу работающих параллельно
  44.                 curl_multi_add_handle($mh, $curls[$IdRequest]);
  45.         }
  46.  
  47.         // число работающих процессов.
  48.         $running = null;
  49.         $time2=time();
  50.         // curl_mult_exec запишет в переменную running количество еще не завершившихся
  51.         // процессов. Пока они есть - продолжаем выполнять запросы.
  52.         do
  53.         {
  54.                 curl_multi_exec($mh, $running);
  55.                 usleep(50);
  56.         } while($running > 0);
  57.  
  58.         // Собираем из всех созданных механизмов результаты, а сами механизмы удаляем
  59.         foreach($curls as $id => $c)
  60.         {
  61.                 $result[$id] = curl_multi_getcontent($c);
  62.                 curl_multi_remove_handle($mh, $c);
  63.         }
  64.         $time3=time()-$time2;
  65.         // Освобождаем память от механизма мультипотоков
  66.         curl_multi_close($mh);
  67.  
  68.         echo 'Функция multiCurl завершена. Время работы всей функции/получение загружаемых данных (do while)'.(time()-$time1).'/'.$time3.'. Колличество загрузок(потоков):'.$x.'<br>';
  69.         // возвращаем данные собранные из всех потоков.
  70.         ksort($result);
  71.         return $result;
  72. }


1) файл 1 - создание файлов с случайным содержимым и файла для контроля корректности загрузку
PHP:
скопировать код в буфер обмена
  1. /**
  2.  * Функция для создания файла и записи в него. Варианты работы: Дозапись файла, Перезапись файла
  3.  *
  4.  * @param string $Content содержимое файла
  5.  * @param string $PathFiles Путь к файлу
  6.  * @param Boolean $log Выбор варинта работы с файлом: Дозапись файла, Перезапись файла
  7.  */
  8. function save_to_files($Content,$PathFiles,$log)
  9. {
  10.         if ($log==True)
  11.         {
  12.                 $handle = fopen($PathFiles, "a"); //Дозапись файла
  13.         }
  14.         else {$handle = fopen($PathFiles, "wb");} //Перезапись файла
  15.         if (fwrite($handle, $Content) === FALSE)
  16.         {
  17.                 echo "<br/>Не могу произвести запись в файл";
  18.                 exit;
  19.         }
  20.         if (!$handle) echo 'Ошибка открытия файла';
  21.         fclose($handle);
  22. }
  23.  
  24. $stream=50;
  25. $CyclesTesting=10;
  26. if(!is_dir(".\TestMultiCurl")) mkdir(".\TestMultiCurl", 0700);
  27. for ($i=0;$i<($stream*$CyclesTesting);$i++)
  28. {
  29.         $ContentFiles[$i]=$i.'_'.mt_rand();
  30.         save_to_files($ContentFiles[$i],'.\TestMultiCurl\test'.$i.'.txt',False);
  31. }
  32. //Сохраниени сгенерированного содержимого всех файлов
  33. save_to_files(implode("\r\n", $ContentFiles),'.\TestMultiCurl\CheckFiles.txt',False);


2) файл 2 - загрузка файлов и проверка корректности загрузки
PHP:
скопировать код в буфер обмена
  1.  
  2. //вставить сюда функцию multiCurl
  3. <?PHP
  4. $Time=time();
  5. $stream=50;
  6. $CyclesTesting=10;
  7. $UrlPath='http://testsait1/TestMultiCurl';
  8. //$UrlPath='http://www.marketing-trade.ru/TestMultiCurl';
  9.  
  10. //Создание задания для загрузки файла с данными для провеки загрузок
  11. $Request[0] =Array('url' => $UrlPath.'/CheckFiles.txt', 'post' => '', 'cookie' => '', 'refer' => '', 'proxy' => '');
  12. $CheckFiles=multiCurl($Request,0);
  13. unset($Request);
  14. echo '<br/>Затрачено времени на загрузку контрольного файла: '.(time()-$Time).'<br/>';
  15. //деление загруженного файла на строки и помещение их в массив
  16. $ArrayCheckFiles=explode("\r\n", $CheckFiles[0]);
  17. //Загрухка файлов
  18. $i=0;
  19. unset($CheckFiles);
  20. $CheckFiles=array();
  21. $i1=0;
  22. while($i<=($stream*$CyclesTesting))
  23. {
  24.         $i1++;
  25.         $Request[$i] =Array('url' => $UrlPath.'/test'.$i.'.txt', 'post' => '', 'cookie' => '', 'refer' => '', 'proxy' => '');
  26.         if ($i1==$stream)
  27.         {
  28.                 //var_dump($Request);
  29.                 $CheckFiles0=multiCurl($Request,0);
  30.                 $CheckFiles=array_merge($CheckFiles, $CheckFiles0);
  31.                 unset($CheckFiles0);
  32.                 unset($Request);
  33.                 $i1=0;
  34.         }
  35.         $i++;
  36. }
  37. if (count($Request)>0)
  38. {
  39.         $CheckFiles0=multiCurl($Request,0);
  40.         $CheckFiles=array_merge($CheckFiles, $CheckFiles0);
  41.         unset($CheckFiles0);
  42.         unset($Request);
  43. }
  44. //Провекра корректности загруженных файлов
  45. $ErrorCheck=0;
  46. foreach($ArrayCheckFiles as $id => $Content)
  47. {
  48.         if ($Content!=$CheckFiles[$id])
  49.         {
  50.                 $ErrorCheck++;
  51.                 echo '<br/>ERROR:<br/>'.$Content.'<br/>'.$CheckFiles[$id];
  52.         }
  53. }
  54. echo '<br/><br/>Всего файлов/Ошибок: '.count($ArrayCheckFiles).'/'.$ErrorCheck;
  55. echo '<br/><br/>Затрачено времени: '.(time()-$Time);
  56. ?>

3) добавит в файл 2 функцию multiCurl
4) указать адрес где лежать загружаемые файлы $UrlPath

Осталась надежда только на гуру с форума, подскажите пожалуйста почему происходит такая хрень, что я сделал неправильно? Протестируйте этот скрипт кто нибудь у себя, хотелось бы сравнить результаты.
tisar Отправлено: 26 Мая, 2010 - 14:46:48 • Тема: Обработка ошибок в multi CURL • Форум: Программирование на PHP

Ответов: 8
Просмотров: 2206
Всем спасибо за ответы, очень помогли.

Переписав свой код заставил всётаки работать curl_exec, curl_error и curl_getinfo.

Спойлер (Отобразить)


P.S.: зачем столько заморочек с этими константами, не проще ли было сделать получение ошибок как в обычном курле?
tisar Отправлено: 23 Мая, 2010 - 06:33:55 • Тема: Обработка ошибок в multi CURL • Форум: Программирование на PHP

Ответов: 8
Просмотров: 2206
А где можно найти описание констант из ячеек массива msg и result (удалось смоделировать 3 разных ответа 0, 6 и 7, но что они означают)?

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB