Gå til innhold

PHP nøtt! Ta tekst fra html side, og printe på ny side


Anbefalte innlegg

Har et prosjekt på gang, men har ikke noe særlig peiling på php, og håpte derfor å få hjelp av dere...

 

Går det an å lage et script som:

 

- Går til en URL

- Plukker opp en setning som står på den siden

- returnere teksten og printe setningen

 

Kanskje litt dårlig forklart... Poenget er å vise setningen, uten å vise alt annet som står på vg.no.

 

Mulig jeg er langt utenfor grensene over hva som er mulig med php, men det er verdt et forsøk... :wink:

Lenke til kommentar
Videoannonse
Annonse
Har et prosjekt på gang, men har ikke noe særlig peiling på php, og håpte derfor å få hjelp av dere...

 

Går det an å lage et script som:

- Går til en URL

- Plukker opp en setning som står på den siden

- returnere teksten og printe setningen

 

Kanskje litt dårlig forklart... Poenget er å vise setningen, uten å vise alt annet som står på vg.no.

 

Mulig jeg er langt utenfor grensene over hva som er mulig med php, men det er verdt et forsøk... :wink:

 

:D

 

Ingenting er umulig. Vel nesten...

 

Hvis du har aksess til siden som inneholder det du leter etter kan du gjøre følgende:

   

  $fp = fopen("http://www.websted.no/filduvilha.html",'r');

  $strText = fread($fp,300000);



  echo("Innhold:<br>");

  echo($strText);

 

 

 

Så spørs det hva du mener med "å plukke opp en setning". Alt innholdet som lå i filen, har du nå tilgang på gjennom en en php-variabel. I prinsippet kan du gjøre hva som helst med den (text-manipulasjon).

 

Forklar gjerne litt mer i detalj om hva du prøver på.

 

"Når" du har isolert det du leter etter i en egen variabel er det jo bare å returnere en html-side på vanlig måte.

Lenke til kommentar

For å klippe ut en del av en kode, må du finne noe tekst som er før og etter teksten, som er unikt for den delen av koden. Mest ideellt er kommentarer, f.eks. <!-- nyhet begynner her --> og <!-- nyhet slutter her -->, men det er også mulig å bruke HTML-kode e.l.

 

Deretter kan du benytte følgende kodesnutt:

 


$fh = fread(fopen($url, "r"), 65535); 

if ($fh) 

{ 

   $start = strpos($fh, "<!-- Startkode -->"); 

   $stopp = strpos($fh, "<!-- Sluttkode -->"); 

   $lengde = $stopp-$start; 

   $kode = substr($fh, $start, $lengde); 



   echo $kode; 

} 

Lenke til kommentar

Ah... Takk for svar.

 

Skal beskrive planen min litt nærmere.

 

Jeg skal lage et skjema med tre felter som skal fylles ut.

 

Disse variablene skal så puttes inn i en url:

 

www.url.com/?variabel1=$input1&variabel2=$input2&variabel3=$input3

 

I stedet for at brukeren føres rett til den siden som linken egentlig fører til, vil jeg at scriptet skal bare hente det vesentlige fra den siden, og vise det i et popup vindu f.eks.

 

Som dere sikkert skjønner generes teksten som vises på siden ut i fra variablene i URL'en. Den teksten jeg vil ha returnert begynner og slutter likt uansett - det er ikke noe problem å finne den med andre ord.

Lenke til kommentar

Nå prøvde jeg begge sine forslag, men uten hell. Dette er altså det første scriptet jeg prøver meg på bortsett fra mail() opplegget... :D

Så ikke utelukk n00b feil:

 

Får denne feilmeldingen på begge's forslag:

 

Warning: fopen("URLen, "r") - No error in C:wwwwwwscript2.php on line 7

 

Warning: fread(): supplied argument is not a valid File-Handle resource in C:wwwwwwscript2.php on line 7

 

No error høres jo passe forvirrende ut...

Jeg kjører skriptet på en pc i nettverket, men jeg er koblet opp på internett så det skulle gå bra.

 

Kan det være en feil i url'en? er det ikke bare ' og " jeg trenger å putte foran, eller er det andre tegn som roter ting til? (andre tegn i url'en: ? = & %)

 

 

Edit1:

 

Prøvde en annen url - det funket fint!

 

Altså er URL'en problemet. Er sikkert pga den er lang, og har masse tegn? (noen tegn som må ha foran?)

 

Edit2:

 

Hmm... Problemet viser seg å være at den ikke takler

 

www.url.com:88/

www.url.com funker - men ikke hvis jeg legger på port 88... Noen som vet hvorfor?

Lenke til kommentar
Spesialtegn lager vel gjerne litt krøll.

 

Har du testet :

 

fopen(urlencode($strURL),'r');

 

:shrug:

 

Er ikke helt sikker på om jeg skjønte den...

 

Skulle det være sånn:

 

$fh = fread(fopen(urlencode($strURL)),'r');

mens $strURL = URL'en?

Lenke til kommentar
:yes:

 

Det funket ikke... Akkurat samme feilmelding som jeg skrev over.

 

Mr.Ueland: Fant ingenting bra der... Dvs, fant en som hørtes ut som det jeg leiter etter, men den linken var selvsagt nede... :evil:

Det var en annen også, men den kostet penger...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...