Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: horo
Форумы портала PHP.SU » » Работа с файловой системой и файлами » horo

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

1. maragon - 08 Июня, 2011 - 22:19:25 - перейти к сообщению
Сам скрипт
CODE (htmlphp):
скопировать код в буфер обмена
  1. function horoscope ($url, $sign)
  2. {
  3. //   echo "<META http-equiv=content-type content=\"text/html; charset=UTF-8\">";
  4.      $xml=file_get_contents($url);
  5.      $dom=new domDocument;
  6.      $dom->loadXML($xml);
  7.      $s_dom=simplexml_import_dom($dom);
  8.      if ($sign==""||$sign>12) return " not sign ";
  9.      return iconv("utf-8", "windows-1251", $s_dom->channel->item[$sign]->description);
  10. //    return $s_dom->channel->item[$sign]->description;
  11.  
  12. }
  13.  ........

Но, если нет коннекта в паутину - выдаёт огород ошибок.
Как бы убрать? и красиво оповестить зашедшего на страницу. Хм
2. DeepVarvar - 09 Июня, 2011 - 00:18:03 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $file = @fopen($url);
  2. if ($file) {
  3.   // работаем, только закрыть потом не забываем
  4.   }
  5. else echo "Звиняйте... Но щаз каннекта тюти...";
3. maragon - 09 Июня, 2011 - 00:30:30 - перейти к сообщению
А можно разжувать - что енто? Однако
и что закрыть? точнее как Не понял
4. DeepVarvar - 09 Июня, 2011 - 00:37:23 - перейти к сообщению
maragon пишет:
и что закрыть? точнее как

5. maragon - 09 Июня, 2011 - 00:53:46 - перейти к сообщению
Ха-ха не спать - вредно. Ха-ха
спасибо.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. echo "<h3>Общий гороскоп. Овен</h3>";
  2. $url = "http://hyrax.ru/cgi-bin/bn_xml2.cgi";
  3. $file = @fopen($url);
  4. if ($file) {
  5. echo horoscope($url, 1);
  6. } else { echo "Гороскоп в данный момент недоступен!"; }
  7.  

ругается и пишет "Гороскоп в данный момент недоступен!", хотя, если убрать эти манипуляции он его загрузит.
CODE (htmlphp):
скопировать код в буфер обмена
  1. echo horoscope($url, 1);
6. DeepVarvar - 09 Июня, 2011 - 01:27:33 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function horoscope ($url, $sign) {
  2.   //   echo "<META http-equiv=content-type content=\"text/html; charset=UTF-8\">";
  3.   $file = @fopen ($url);
  4.   if ($file) {
  5.     $xml=fread($file,100000);
  6.     $dom=new domDocument;
  7.     $dom->loadXML($xml);
  8.     fclose($file);
  9.     $s_dom=simplexml_import_dom($dom);
  10.     if ($sign==""||$sign>12) return " not sign ";
  11.     return iconv("utf-8", "windows-1251", $s_dom->channel->item[$sign]->description);
  12.     return $s_dom->channel->item[$sign]->description;
  13.     }
  14.   else return "Звиняйте... Но щаз каннекта тюти...";
  15.   }
7. maragon - 09 Июня, 2011 - 01:33:31 - перейти к сообщению
мм.. а самого главного нема,
- 1 это номер гороскопа, он у меня меняется от 1-12.
В данный момент нужно вывести 1, как указано в коде выше Однако
8. maragon - 09 Июня, 2011 - 14:12:04 - перейти к сообщению
Актуально. help Хм
9. maragon - 09 Июня, 2011 - 23:02:59 - перейти к сообщению
CODE (htmlphp):
скопировать код в буфер обмена
  1. function horoscope ($url, $sign) {
  2.   //   echo "<META http-equiv=content-type content=\"text/html; charset=UTF-8\">";
  3.   $file = @fopen ($url);
  4.   if ($file) {
  5.     $xml=fread($file,100000);
  6.     $dom=new domDocument;
  7.     $dom->loadXML($xml);
  8.     fclose($file);
  9.     $s_dom=simplexml_import_dom($dom);
  10.     if ($sign==""||$sign>12) return " not sign ";
  11.     return iconv("utf-8", "windows-1251", $s_dom->channel->item[$sign]->description);
  12.     return $s_dom->channel->item[$sign]->description;
  13.     }
  14.   else return "Звиняйте... Но щаз каннекта тюти...";
  15.   }
  16. echo horoscope($url, 1);

не отвечает - выводит пустоту! Улыбка
10. DeepVarvar - 09 Июня, 2011 - 23:47:18 - перейти к сообщению
var_dump() каждой строки по очереди - и смотри что куда передается, и передается ли. Чо на код то пялится? Ковыряй его милого Радость
11. maragon - 10 Июня, 2011 - 00:14:02 - перейти к сообщению
Вопрос решен. Улыбка
12. DeepVarvar - 10 Июня, 2011 - 00:58:07 - перейти к сообщению
Отписался бы хоть что там было...
13. maragon - 10 Июня, 2011 - 01:25:04 - перейти к сообщению
Листал мануалы по fopen, думал может что с сокетами сотворить... в итоге взял другой подход с более длинным(ужасным) кодом - но работает.
14. DeepVarvar - 10 Июня, 2011 - 01:25:53 - перейти к сообщению
скинь ка Закатив глазки
15. maragon - 10 Июня, 2011 - 01:34:37 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function isValidURL($url){
  3.                                                    $url = !preg_match('/^(https?|ftp):\/\/.*/i',$url) ? 'http://'.$url : $url;
  4.                                                    if(function_exists('curl_init')){
  5.                                                           ob_start();
  6.                                                           $ch = curl_init($url);
  7.                                                           curl_setopt($ch, CURLOPT_HEADER, 1);
  8.                                                           curl_setopt($ch, CURLOPT_NOBODY, 1);
  9.                                                           curl_exec($ch);
  10.                                                           curl_close($ch);
  11.                                                           $head = ob_get_contents();
  12.                                                           ob_end_clean();
  13.                                                           preg_match('/HTTP\/1\.1\s([0-9]{3})/', $head, $code);
  14.                                                           $code = isset($code[1]) ? (int)$code[1] : -1;
  15.                                                           return $code==200 || $code==302;  
  16.                                                    }
  17.                                                    if(function_exists('fsockopen')){
  18.                                                           $url = parse_url($url);
  19.                                                           $url['port'] = isset($url['port']) ? $url['port'] : 80;
  20.                                                           $url['query'] = isset($url['query']) ? "?".$url['query'] : "";
  21.                                                           if($f=fsockopen($url['host'],$url['port'])){
  22.                                                                  fputs($f,"HEAD ".$url['path'].$url['query']." HTTP/1.1\r\nHost: ".$url['host']."\r\n\r\n");
  23.                                                                  while($line=fgets($f)){
  24.                                                                         if(preg_match('/HTTP\/1\.1\s([0-9]{3})/',$line,$code)){
  25.                                                                            $code = isset($code[1]) ? (int)$code[1] : -1;
  26.                                                                            return $code==200 || $code==302;
  27.                                                                         }
  28.                                                                  }
  29.                                                                  fclose($f);
  30.                                                           }
  31.                                                    }
  32.                                                    if(function_exists('stream_get_contents') && $stream=fopen($url,'r')){
  33.                                                                  $response = stream_get_contents($stream,1,0);
  34.                                                                  fclose($stream);
  35.                                                                  return $response!==FALSE;
  36.                                                    }      
  37.                                                    return file_get_contents($url)!==FALSE;
  38.                                                    }
  39.                                                         $url = "http://hyrax.ru/cgi-bin/bn_xml2.cgi";
  40.                                                         if ( isValidURL($url) ){
  41.                                                         function horoscope ($url, $sign)
  42.                                                         {
  43.                                                                  $xml=file_get_contents($url);
  44.                                                                  $dom=new domDocument;
  45.                                                                  $dom->loadXML($xml);
  46.                                                                  $s_dom=simplexml_import_dom($dom);
  47.                                                                  if ($sign==""||$sign>12) return " not sign ";
  48.                                                                  return iconv("utf-8", "windows-1251", $s_dom->channel->item[$sign]->description);
  49.                                                         }
  50.                                                           echo "<h3>Общий гороскоп. Овен</h3>";
  51.                                                           echo horoscope($url, 1); // for sign scorpio
  52.                                                         } else {
  53.                                                            echo "Гороскоп в данный момент недоступен!";
  54.                                                         }
  55. ?>

 

Powered by ExBB FM 1.0 RC1