PHP.SU

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

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

> Найдено сообщений: 7
Arhat109 Отправлено: 01 Июля, 2014 - 18:18:24 • Тема: curl и proxy • Форум: Работа с сетью

Ответов: 3
Просмотров: 61941
А как? Сервера из списка - пингуются, а как проверить работает ли на них прокся?

у wget сколько не читал ман, так и не понял как задать проксю... через какие-то переменные ... как это сделать из консоли Линукса?
(Добавление)
Нашел как проверить. вот этот прокси 218.203.54.8:80 - явно работает. Время доступа около 1.5сек.
При его использовании получил другой вариант ошибки CURL: Couldn't resolve proxy

Такое ощущение, что где-то чего-то не включено... или у меня или у провайдера... может быть?
Arhat109 Отправлено: 01 Июля, 2014 - 16:39:46 • Тема: curl и proxy • Форум: Работа с сетью

Ответов: 3
Просмотров: 61941
Есть давно писанный парсер сети, работает как надо. Через curl.
Сегодня решил попробовать запинать его через proxy. Нашел список бесплатных проксей и ... облом-с.
Curl на любой запрос висит до timeout (30сек) а потом, возвращает false и ошибку couldn't connect to host

Вот код функции чтения содержимого странички, он типовой:
PHP:
скопировать код в буфер обмена
  1.  
  2. function get_proxy($url, $proxy) {
  3.         $ch = curl_init();
  4.         curl_setopt($ch, CURLOPT_URL, $url);
  5.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6.         curl_setopt($ch, CURLOPT_USERAGENT, 'test-test');
  7.         curl_setopt($ch, CURLOPT_PROXY, "$proxy");
  8. //      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  9. //      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  10. //      curl_setopt($ch, CURLOPT_HEADER, false);
  11. //      curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, true);
  12. //      curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
  13.  
  14.         $ss=curl_exec($ch);
  15. // echo curl_error($ch);
  16.  
  17.         curl_close($ch);
  18.         return $ss;
  19. }
  20.  
  21. // А вот так вызываю:
  22. $proxy = '112.25.12.37:80';
  23. $content = get_proxy('http://arhat.su/',$proxy);
  24. var_dump( $content );
  25.  


Сайт, по ссылке - расположен не том же компе, с которого запускаю скрипт. Замена на любой другой ничего не меняет. Впрочем как и замена прокси...

Если убрать опцию CURLOPT_PROXY, то так было раньше и всё работает на ура.

закомментаренные строки - это то, что уже попробовал. Результат тот же самый.

Что я делаю не так?
(Добавление)
Народ, есть холть какие-нить мысли? Как-то тут чего ни спроси, а в ответ - тишина...
Arhat109 Отправлено: 26 Июня, 2014 - 14:23:37 • Тема: Eclipse не видит мануал по сети • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
И в ответ ... тишина.

Интересно, вопрос настолько сложен или тут никто Eclipse-ом не пользуется?!?
Arhat109 Отправлено: 25 Июня, 2014 - 15:24:40 • Тема: Eclipse не видит мануал по сети • Форум: Вопросы новичков

Ответов: 3
Просмотров: 186
Недавно переставил свой Eclipse Galileo (он мне нравится, не кидаться!), и внезапно обнаружил что пропали подсказки по встроенным функциям PHP. Вместо подсказки пишет: occerrence of 'in_array()'

В принципе могу и обойтись, но года два назад как-то исправлял этот косяк ... не помню уже.

В настройках Menu -> Window -> Preferences -> PHP Manual стоит урл http://php.net/manual/en/

попробовал переставить на http://ru2.php.net/manual/en/ -- эффекта нет.

Подскажите, кто знает как подключить удаленный мануал к этому чуду?!? Обыскался, в сети нет ничего...

копировать мануал на локаль - сильно не хочу.
(Добавление)
никто не может помочь?
Arhat109 Отправлено: 28 Марта, 2013 - 16:03:48 • Тема: Вызов статического метода класса наследника ИЗ класса родителя • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 6137
esterio пишет:
?


Непонятно, можно ли писать квалификатор static как имя класса.

Но, похоже разобрался. PHP позволяет в качестве квалификатора писать $var::staticMethod();
, а стало быть, похоже никто не мешает сделать так:

$className = get_class($this);
$addition = $className::staticF();

Улыбка
(Добавление)
Облом. В PHP5.2 такое решение вызывает ошибку на иврите... в 5.3 - похоже нормально работает...
(Добавление)
Ура! Есть решение и для PHP 5.2!

$addition = calc_user_func($className . '::staticF');

проблему решает полностью. Проверено. Улыбка
Arhat109 Отправлено: 28 Марта, 2013 - 15:39:58 • Тема: Вызов статического метода класса наследника ИЗ класса родителя • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 6137
Мелкий пишет:
self::thisClassStaticMethod()?
?


так - не пойдет. Смотрите, реализация метода A::methodA()
PHP:
скопировать код в буфер обмена
  1.  
  2. class A {
  3.   static public function staticF() {
  4.     //требует перекрытия в дочернем классе.
  5.     return 'это класс А';
  6.   }
  7.  
  8.   public function methodA() {
  9.     $addition = //тут нужен тот самый вызов КлассОбъектаTHIS::staticF();
  10.     return 'Это метод базового класса А дополнен строкой из дочернего класса: '
  11.         . $addition
  12.     ;
  13.   }
  14. }
  15. class B extend A {
  16.   static public staticF() { return 'Это класс В'; }
  17. }
  18.  
  19. $var = new B();
  20. echo $var->methodA();
  21. // должна получится строка:
  22. // "Это метод базового класса А дополнен строкой из дочернего класса: Это класс В"
  23. // при этом возможно самостоятельное использование без создания объекта класса В:
  24. echo B::staticF();
  25.  


Дополнено:
Если в реализации в классе А метода methodA() указать префикс self:: то будет обращение к статической функции класса А, а нужно к той, которая от класса объекта $this.
Arhat109 Отправлено: 28 Марта, 2013 - 15:14:00 • Тема: Вызов статического метода класса наследника ИЗ класса родителя • Форум: Объектно-ориентированное программирование

Ответов: 5
Просмотров: 6137
Захотелось "странного" и задумался.
Скажем, есть такая связка классов:
PHP:
скопировать код в буфер обмена
  1.  
  2. class A {
  3.   public function metodA() {
  4.     echo "\nThie is a method for class A";
  5.     // тут к объекту-экземпляру можно обращаться через $this->...
  6.     // ... [b]А вот КАК тут вызвать статический метод класса ЭТОГО экземпляра?!?[/b]
  7.   }
  8.   statis public function staticA() {
  9.     echo "\nThis is a static method for class A";
  10.   }
  11. }
  12. class B extend A {
  13.   //... конструктор свойства объектов и "все дела"...
  14.  
  15.   static public function staticB() {
  16.     echo "\nThis is a static method from B";
  17.     // метод статический и доступа к объектам нет... поскольку нет объекта $this
  18.     // но к статическим методам класса "А" доступ есть parent::staticA();
  19.   }
  20. }
  21.  
  22. $var1 = new B();
  23.  
  24.  

Практическое применение: базовый класс реализует метод объекта, который использует статическую функцию дочернего класса, уточняющую метод. Функция статична по причине того, что сама по себе может использоваться без объекта (возвращает например какие-то строки дочернего класса)

То есть, фактически надо в реализации метода methodA() {} при обращении к статической функции staticB(), в качестве квалификатора имени класса "подставить" класс объекта $this. КАК?

Можно ли писать что-то типа такого: {a($this)}::staticB();
... или надо объявить в классе "А" статический метод с тем же именем... но тогда ... опять КАК указать квалификатор по типу объекта $this?

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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB