Avatar billede f_bar Nybegynder
11. februar 2003 - 16:52 Der er 33 kommentarer og
1 løsning

fopen eller ?

Hvis jeg nu vil lave en funktion om sender en forespørgsel til en side. F.eks.
http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/regionaler/nord.htm
(som henter vejret fra idag)
men denne funktion skal hente de data denne forespørgsel får tilbage ind i en variabel.
Er det ikke muligt ???
Hvis det skal laves med fopen, såååå kan jeg ikke helt få det til at virke
Avatar billede fangel Nybegynder
11. februar 2003 - 16:56 #1
sådan her laver den en variabel med HELE html koden til siden...

$fcontents = implode ('', file ('http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/regionaler/nord.htm'));

så kan du lege med at dele den lidt op så du kun for det mest nødvendige...

MEN, HUSK at spørg om lov hos DR, du kopiere jo deres side... det er deres materiale...

Morten
Avatar billede fangel Nybegynder
11. februar 2003 - 16:56 #2
MEN, fopen kan også bruges... file() er bare lidt nemmere at lege med...
Avatar billede al1407 Nybegynder
11. februar 2003 - 17:00 #3
fopen() eksempel:

if ($fh = fopen(http://www.dr.dk/pubs/nyheder/html/nyheder/vejret/regionaler/nord.htm, "r")) {
  while ($data = fread($fh, 2048)) {
    $file .= $data;
  }
  fclose($fh);

  print htmlentities($data);
}
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:00 #4
hehe Det med DR er KUN et eksempel jeg kunne sgu ikke finde på at hente noget fra DR :) og ja hvis vi nu tager eksemplet fra DR igen fordi det er så let, så skal jeg kun bruge dele af den side jeg henter. MEn jeg vil lige prøve med dit eksempel.
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:02 #5
men jeg får stadigt denne fejl som jeg fik med fopen
Warning: file("http://minurl.dk/noget.htm") - No such file or directory
Avatar billede fangel Nybegynder
11. februar 2003 - 17:02 #6
OK... men det ville jo være meget rat med lidt nyhedder om vejret... ;)
Avatar billede fangel Nybegynder
11. februar 2003 - 17:04 #7
hmm... det burde virke... tester lige fra min server...

Morten
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:04 #8
Det er somom den går leder efter denne fil i mit bib
file("http://www.minurl/noget.htm") - No such file or directory in /var/www/test/index.php
Avatar billede fangel Nybegynder
11. februar 2003 - 17:08 #9
gpr fint for mig...

se http://exp.mfa.ath.cx/file_test.php

Morten
Avatar billede al1407 Nybegynder
11. februar 2003 - 17:08 #10
Det kan være at "allow_url_fopen" er slået fra .. så kan du ikke åbne filer via HTTP, men kun på lokalt filsystem.

Se evt. http://www.php.net/manual/en/ref.filesystem.php#ini.allow-url-fopen for info om allow_url_fopen ..
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:09 #11
tjooo men hvordan f..... finder jeg ud af om den er slået til/fra
Avatar billede al1407 Nybegynder
11. februar 2003 - 17:11 #12
PS. Sometider når man henter en side vha. file() eller fopen() kan det være at man intet får, eller at man får en side der ikke stemmer overens med det indhold man ser i browseren.

Det kan være pga. 'anti-leech' systemer ... de kan sometider omgås ved at bruge fsockopen() (http://php.net/fsockopen) og lave et HTTP/1.1 GET request på filen, med Host og en fake Referer.
Avatar billede jakoba Nybegynder
11. februar 2003 - 17:12 #13
Og bliver den ikke slået fra automatisk hvis php er i safe-mode?  som den er hos mange udbydere.
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:12 #14
hmmm det lyder sjovt
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:12 #15
har fundet ud af hvor man ser det, og tjoo den står til no value
Avatar billede jakoba Nybegynder
11. februar 2003 - 17:18 #16
du kan checke dine indstillinger med ini_get(): http://dk.php.net/manual/en/function.ini-get.php

echo "allow_url_fopen er sat til " .ini_get("allow_url_fopen");
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:19 #17
jaaaa nu har jeg endelig fundet en udbyder hvor den står til 1, så nu vil jeg lige tjekke de svar jeg har fået :)
Avatar billede al1407 Nybegynder
11. februar 2003 - 17:20 #18
jakoba: http://www.php.net/manual/en/function.ini-set.php

allow_url_fopen "1" PHP_INI_ALL

Så den bliver nok ikke slået fra automatisk ved safe_mode ..

f_bar: prøv at sætte ini_set("allow_url_fopen", 1); i toppen af dit script ..
Avatar billede al1407 Nybegynder
11. februar 2003 - 17:20 #19
nøøj hvor er jeg langsom .. :/
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:26 #20
ok hvis man nu henter det ind som den file du snakker om dea_pg>> hvad gør jeg så for at få dette lavet om til tekst, eller lignende da alt det jeg skal hente er tekst ???
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:39 #21
Hvilket jo sådanset er det jeg gerne vil have frem med dette spørgsmål :)
Avatar billede fangel Nybegynder
11. februar 2003 - 17:43 #22
hmm... du kigger i koden...

hvis du ved at koden ALTID ser ca. sådan her ud

<html>
<title>.....</title>
<en masse HTML tags>
<p align="center" class="tekst">
her kommer den tekst jeg vil have fat i...
</p>
<en masse HTML tags>
</html>

så kan du lave det trick...

MEN, det kræver du finder noget tekst som kun findes ET sted i kildekode, på hver side af teksten... så kan du begynde at søge efter den tekst, og beskære indholdet efter disse potitioner...

Morten
Avatar billede f_bar Nybegynder
11. februar 2003 - 17:46 #23
jamen øøhh, synes ikke rigtigt det svarer på mit spg. for hvis jeg bruger dit svar oppe fra toppen, så bliver dette hentet ind som et fil objekt af en slags. Hvis jeg nu skal ha lavet dette om til en laaaaangt tekst streng som jeg så senere kan søge rundt i osv. kan jeg ikke det, ellers synes jeg ikke rigtigt at kunne finde ud af hvordan jeg skal hente mine data ud ?
Kom gerne med eksempler
Avatar billede fangel Nybegynder
11. februar 2003 - 17:56 #24
vi tager et ex hvor vi vil finde temperaturen på min computer (står tilfædigvis på siden http://mfa.ath.cx/ )...

efter at have kigget på kildekoden, kommer vi frem til at der ALTID står noget lignene

MHz<br>
CPU temp: [det tal vi vil have fat i]° C<br>
MB

DVS at alt fra toppen og til og med

"MHz<br>CPU temp: "

skal skæres væk...

og alt fra

"° C<br>MB"

og ned til bunden skal væk... OK, kan du følge mig i det?

det kan vi gøre med et script ala dette (utestet)

<?php

$indhold = implode("",file("http://mfa.ath.cx"));

startpos = strpos("MHz<br>CPU temp: ",$indhold);
$slutpos = strpos("° C<br>MB",$indhold);

$antal_grader = substr($indhold,$startpos,$slutpos);

?>

det kan så være at der komme 3 tegn med i starten.. og det gør der ALTID, så kan man så kompencere for dette senere hen... forsod du det?

Morten
Avatar billede fangel Nybegynder
11. februar 2003 - 18:03 #25
og nu også hvor scriptet er testet...

<?php

$indhold = implode("",file("http://mfa.ath.cx"));

$startpos = strpos($indhold, "CPU temp: ")+10;
$slutpos = strpos($indhold, "° C<br>
MB");

$antal_grader = substr($indhold,$startpos,($slutpos-$startpos));

echo $antal_grader;

?>
Avatar billede f_bar Nybegynder
11. februar 2003 - 18:44 #26
det prøver jeg lige
Avatar billede fangel Nybegynder
11. februar 2003 - 18:54 #27
forklaring på de ændringer der er lavet

+10 i $startpos <= fordi der er 10 tegn i "CPU temp: ", og strpos finder STARTEN af strengen, vi vil jo habe slutningen af den...

($slutpos-$startpos) i $antal_grader <= fordi vi kan bruge "hvor mange tegn skal der bruges", og ikke "til hvor mange tegn"...

Morten
Avatar billede al1407 Nybegynder
11. februar 2003 - 20:09 #28
Avatar billede fangel Nybegynder
11. februar 2003 - 20:14 #29
al1407 => så kommet spørgsmålet hvad der er hurtigst? jeg ved det ik'... ;) men dit er lidt pænere... ;)

har du MSN? for det er altid rart at snakke med nogle "med-php-nørder".... ;)

Morten
Avatar billede al1407 Nybegynder
11. februar 2003 - 20:15 #30
dea_pg: preg_match() er pænt hurtigt hvis du skal have flere matches f.eks.

nææ .. jeg har kun ICQ ... 4033867 .. men jeg er ikke online så meget ...
Avatar billede fangel Nybegynder
11. februar 2003 - 20:17 #31
OK... bruger ik' ICQ ret meget... ;)
Avatar billede al1407 Nybegynder
11. februar 2003 - 20:30 #32
http://novaishot.dk/gettemp.php <- reload

Prøv at lave den med strpos(), substr() osv. .. sammenlign koden, samt hastighed ... ;o)

HER er preg_match_*() nyttigt :o)
Avatar billede fangel Nybegynder
11. februar 2003 - 20:37 #33
den er sku' pænt sej... ;) det må jeg sige... det ville jeg ikke lige kunne lave... det hører nok sammen med at jeg ik' er så sej til reg.exp...

BTW, stats bliver hentet fra en .txt fil som MBM5 laver... ;)

Morten
Avatar billede f_bar Nybegynder
12. februar 2003 - 17:48 #34
takker for hjælpen, det er kun dea_pg>> der har kommet med svar, hvis der er andre der har hjulpet der gerne vil have point sååå kom lige med svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester