Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 14

Temat: file_get_contents [ bad request]

  1. #1
    Zarejestrowany
    Jan 2007
    Skąd
    somewhere in time
    Postów
    510

    Domyślnie file_get_contents [ bad request]

    hej, mam pytanie....dlaczego kiedy próbuję tą funkcją na dole pobrać metatagi z youtube.pl to dostaje error bad request blablabla failed to open stream blablabal
    mogłbym co prawda normalnie pobrać strone za pomocą surowego otwierania soketów i przesylania komunikatow do serwa ale mimo to chcialbym wiedziec dlaczego przy stronie pl.youtube.com/index.php nie dziala file_get_contents a na kazdej innej stronie dziala
    Kod php:
    <?php
    function show_meta_tags($a)
    {
        
        
    $file=file_get_contents($a);
        
        
    preg_match_all('#<link rel=\"Stylesheet\".*href=\"(?P<styl>[^\"]*)\"|<title>(?P<tytul>.*)</title>|<meta name=\"keywords\" content=\"(?P<keywords>.*)">|<meta name=\"description\" content=\"(?P<opis>.*)">#i',$file,$ar);
        foreach(
    $ar['styl'] as $value)
        {
            if(!empty(
    $value)){
            
    $styl.=$value.",";}
        }
        foreach(
    $ar['tytul'] as $value)
        {
            if(!empty(
    $value))
            {
            
    $tytul.=$value.",";}
        }
        foreach(
    $ar['keywords'] as $value)
        {
            if(!empty(
    $value))
            {    
                
    $keywords.=$value.",";
            }
        }
        foreach(
    $ar['opis'] as $value)
        {
            if(!empty(
    $value))
            {
                
    $opis.=$value.",";
            }
        }
        
    $out=array("styl"=>$styl,"tytul"=>$tytul,"slowa kluczowe"=>$keywords,"opis"=>$opis);
        return 
    $out;
    }
    print_r(show_meta_tags("http://pl.youtube.com/index.php"));

    ?>
    ten kod chyba bez znaczenia bo glownie chodzi mi wlasnie oto czemu jest bad request przy file_get_contents a kod to............moze komuś sie przyda

  2. Domyślnie

    Może coś źle robię ale mi to w ogóle nie działa
    www.lingubot.pl - projekt sztucznej inteligencji.

  3. #3
    Zarejestrowany
    Jan 2007
    Skąd
    somewhere in time
    Postów
    510

    Domyślnie

    przeciez oto mi wlasnie chodzi ze nie dziala
    wpisz sobie dam zamiast
    print_r(show_meta_tags("http://pl.youtube.com/index.php"));
    print_r(show_meta_tags("http://iron0088.yoyo.pl/index.php"));

  4. #4
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    moze masz allow_url_fopen = off
    http://gogulas.yoyo.pl/h.gif

  5. #5
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    a widziales jakei ch***we naglowki daje ta funkcja/skrypt/wrapper? :P

    Kod:
    [2008-04-23 20:44:35:700]
    GET /index.php HTTP/1.0
    Host: pl.youtube.com
    
    
    [2008-04-23 20:44:38:884]
    HTTP/1.1 400 Bad Request
    Date: Wed, 23 Apr 2008 18:43:47 GMT
    Server: Apache
    Expires: Tue, 27 Apr 1971 19:44:06 EST
    Cache-Control: no-cache
    Connection: close
    Content-Type: text/plain
    zrob na fsockopen(), niektore serwki wymagaja naglowka 'user agent'.

    to mi sie spodobalo: (?P<tytul>.*) nie widzialem ze tak mozna
    Ostatnio edytowane przez gogulas : 04-23-2008 - 20:57
    http://gogulas.yoyo.pl/h.gif

  6. #6

    Domyślnie

    zrób to na normalnych sockach.. będzie:
    1. szybciej
    2. łatwiej*
    3. czytelniej...

    OFFTOPIC: czy mi sie zdaje, czy "PHPowych napaleńców" przybywa ;>? dobrze dobrze! PHP rox!

  7. #7
    Zarejestrowany
    Sep 2007
    Skąd
    Tu
    Postów
    1,236

    Domyślnie

    tez juz przesiadlem sie na socket(), niestety wymagaja dolaczenia dllki, czego nawet platne konta www potrafia nie oferowac :P
    dlatego dla sw. spokoju fsockopen(),
    albo warunek jakimi funkcjami ma sie posluzyc skrypt w zaleznosci czy biblioteka jest dolaczona czy tez nie
    http://gogulas.yoyo.pl/h.gif

  8. #8
    Zarejestrowany
    Jan 2007
    Skąd
    somewhere in time
    Postów
    510

    Domyślnie

    tak też zrobiłem...( sokety)
    ale swoją drogą dziwne to że inne strony działają ale youtube.com/index.php nie chce czytać
    edit: aha no tak user-agent

    to mi sie spodobalo: (?P<tytul>.*) nie widzialem ze tak mozna
    gajdaw.pl i lecisz heh
    OFFTOPIC: czy mi sie zdaje, czy "PHPowych napaleńców" przybywa ;>? dobrze dobrze! PHP rox!
    w zyciu kazdego "programisty" predzej czy pozniej przychodzi czas zeby wybrać (wiadomo co)...Teed z tego co mi wiadomo z tego forum tzn z Twych postow wynika ze juz masz ogarnięte php w miare dobrze. wiec co polecasz jaką forme nauki? jak ty sie uczyles?

  9. #9

    Domyślnie

    na poczatku czytalem kody innych i rozkminiałem, jak działają... czegos nie wiedzialem? -> php.net

    i tak powoli, powoli.. dochodziłem do wprawy.. potem chcialem wyjsc z tworzenia stron w PHP do systemu... googliłem do upadłego.. i odkryłem Bamcompile (php->exe) nie jest to "prawdziwa" kompilacja ale dziala hehe
    i tutaj sie zaczela moja przygoda z socket_create(), LPT, COM itd..
    potem.. zaczalem tworzyc programy z gui.. (jednak wole konsolówki hehe)

    wiecie za co kocham PHP?: cross platform, bezproblemowość ;P, nieogranicozne możliwości

    wiem, ze gadam jak nawiedzony.. ale chyba jestem xD

  10. #10

    Domyślnie

    Cytat Napisał Teeed Zobacz post
    nieogranicozne możliwości
    PHP akurat takich nie ma, tak może powiedzieć coder ASM, albo C ^^

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. na luzie - bad idea...
    By eMCe in forum Off Topic
    Odpowiedzi: 4
    Autor: 04-29-2007, 23:18

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj