Yahoo *might* be "detecting" that you're not a "real" browser, since PHP
probably sends different headers when you attempt to get the file
dynamically than your browser sends when you type the URL.

So Yahoo may be denying you access when using PHP, but not from your
browser.

There's nothing to stop you from writing some extra code and talking
directly to their server and lying to them about what browser you are,
however.  I'm betting there's code in the code archives to show you how.

--
WARNING [EMAIL PROTECTED] address is an endangered species -- Use
[EMAIL PROTECTED]
Wanna help me out?  Like Music?  Buy a CD: http://l-i-e.com/artists.htm
Volunteer a little time: http://chatmusic.com/volunteer.htm
----- Original Message -----
From: Tribun <[EMAIL PROTECTED]>
Newsgroups: php.general
To: <[EMAIL PROTECTED]>
Sent: Thursday, August 09, 2001 4:33 AM
Subject: how 2 read an non-existing file?! (I need help)


> the following problem:
>
> I want to read out, if the firstname is a boy's name or a girl's name...
>
> therefore I've written this code: (which allready works)
>
> ------------------ <snap> -------------------
>
>
$fp=fopen('http://www.vornamenlexikon.de/main/suchen.asp?kriterium=search&B1
> =Suchen&action=searchnow&searchby='.$name,"r");
>  if($fp){
>   $daten=fread($fp,100000);
>   fclose($fp);
>   $male='/m.gif';
>   $female='/w.gif';
>   if((strpos($daten,$female)>0)&&(strpos($daten,$male)>0)){
>    if(strpos($daten,$male)>strpos($daten,$female))$result='w';
>    else $result='m';
>   }else if(strpos($daten,$female)>0)$result='w';
>   else if(strpos($daten,$male)>0)$result='m';
>  }
>  if(empty($result)){
>
>
$fp=fopen('http://www.kindername.de/'.strtolower(substr($name,0,1)).'-namen.
> htm',"r");
>   if($fp){
>    $namen=array();
>    $daten=fread($fp,100000);
>    fclose($fp);
>
>    $daten=strstr($daten,'<font size="4" face="Verdana, Arial, Helvetica,
> sans-serif"><B>VORNAMEN MIT');
>    for($cnt=0;strpos($daten,'<tr>')>0;$cnt++){
>     $daten=substr(strstr($daten,'<tr>'),4);
>     $tag=substr($daten,0,strpos($daten,'</tr>'));
>     if(strpos($tag,'</td>')>0){
>      $x1=substr(strstr($tag,'<td>'),4);
>      while(strpos($x1,' ')>0)$x1=str_replace(' ',' ',$x1);//TAB
>      while(strpos($x1,'  ')>0)$x1=str_replace('  ',' ',$x1);//DBLSPACE
>      $x1=trim($x1);
>      for($i=1;strpos($x1,'<td>')>0;$i++){
>
> $field=strtolower(trim(strip_tags(substr($x1,0,strpos($x1,'</td>')))));
>       if($i==1)$namen[$cnt]=array($field);
>       else if($i==2)$namen[$cnt]['gender']=trim($field);
>       else if($i==3){
>        while(strpos($field,',')>0){
>         array_push($namen[$cnt],substr($field,0,strpos($field,',')));
>         $field=substr(strstr($field,','),1);
>        }
>        array_push($namen[$cnt],$field);
>       }else if($i==4){
>        if(in_array($name,$namen[$cnt]))$result=$namen[$cnt]['gender'];
>       }
>       $x1=substr(strstr($x1,'<td>'),4);
>  } } } } }
> ------------------ </snap> -------------------
>
> This code works, but I wanted to include another Datebase (Yahoo)
>
> So I included this function:
>
> ------------------ <snap> -------------------
>  $fp=@fopen('http://babynames.pregnancy.yahoo.com/bnfname?n='.$name,"r");
>  if($fp){
>   $daten=fread($fp,10000);
>   fclose($fp);
>   $male='boy';
>   $female='girl';
>   if((strpos($daten,$female)>0)&&(strpos($daten,$male)>0)){
>    if(strpos($daten,$male)>strpos($daten,$female))$result='w';
>    else $result='m';
>   }else if(strpos($daten,$female)>0)$result='w';
>   else if(strpos($daten,$male)>0)$result='m';
>  }
> ------------------ </snap> -------------------
>
> But this code has no effect. It returns only an Error (404)
>
> The reason therefore is, that the targetting URL does'nt
> exist:
>
> Try this URL's
>
> http://babynames.pregnancy.yahoo.com/bnfname?n=Patrick
> or
> http://babynames.pregnancy.yahoo.com/bnfname.htm?n=Patrick
> http://babynames.pregnancy.yahoo.com/bnfname.?n=Patrick
> http://babynames.pregnancy.yahoo.com/bnfnameBLABLA?n=Patrick
>
> In a Browser its not nessesary to type in the correct Name
> "bnfname". So you can add what ever you want, but the result
> is the same (it works)
>
> But the problem is, to downloading this file, because then the reason
> is an 404-Error (not existing)
>
> Does anybody know an answer to this problem???
>
> How can I download this file anyway... and read out the information
> I want?
>
>
>
> Thanks,
>     Tribun (Patrick)
> ---
> www.mp3o.net
>
>
> PS: I know. its not the best english ;)
>
>
>


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to