webForumDet fria alternativet

hjälp med hämta från sida

PHP

3 svar · 180 visningar · startad av Rickard

Medlem sedan maj 2001287 inlägg
Frågan#1

Hejsan!

Jag har sökt runt lite här i forumet, men hittar inget som direkt passar mig.

Jag Behöver lite hjälp med ett script som tar kontakt med en sida, letar efter en speciell rad.. tex. om texten börjar med "Just nu.." och slutar med "för idag" och där imellan finns lite info bla "vill jag<br>" och <b> "och detta" etc.. så skall scriptet då plocka ut raden som börjar med "Just nu.." och när raden slutar med "för idag" så ska den ta den samlade inforn och lägga den på i ett tomt dokument, fast "<br>" skall ersättas med blanksteg, <B> och </B> skall tas bort å sånt där..

Någon som har en aning om vad jag babblar om och har möjlighet att hjälpa mig lite?

Tack på förhand.

/Rickard

Medlem sedan sep. 20021 655 inlägg
#2

Principen:
Du läser in sidan och stoppar hela innehållet i en variabel.
Med hjälp av en regexp plockar du ut precis det du vill ha, och stoppar det i en ny variabel. Sedan kan du leka lite hur du vill med det.

T.ex:

$fp = fopen("url till sidan med text", r);
while (!feof($fp)){
 $content.=fgets($fp, 4096);
}

ereg("Just nu(.*)för idag", $content, $resultat);

$bort_med_br = ereg_replace("(<br>)|(<br />)", " ", $resultat[0]);
$enbart_text = strip_tags($bort_med_br);

echo $enbart_text;

Efter <br> och <br /> i ereg_replace ska det inte vara några mellanrum (innan slutparanteserna) - det är bara funktionen som skriver ut php-färgerna som lägger till dem.

Medlem sedan maj 2001287 inlägg
#3

tack...

Jag kom på en annan sak.

Det som står mellan "just nu.." och "för idag" ändras var annan minut, så scriptet måste altså reloadas varannan minut.
dock finns där samma HTML kod.

I skrivande stund ser sourcen på sidan som skall hämtas ut så här:

<html>
<head>
<meta http-equiv="refresh" content="10">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</head>
<body bgcolor="FF00FF">
<div align="center">

<table width="100%" height="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%" height="2" bgcolor="#000000"></td>
</tr>
<tr>
<td width="100%" height="100%" valign="middle" align="center">
<font face="verdana" size="-1" color="#ffffff">

Just nu spelas:<b>&nbsp; NELLY  - DILEMMA (FEAT. KELLY ROWLAND) </b>av DJ'n<b> DJ_Somebody </b>&nbsp;

</td>
</tr>
</table>

ordet "för idag" var bara ett exempel...
meningen slutar dock ALLTID med </b> 

/Rickard

Medlem sedan sep. 20021 655 inlägg
#4

Ersätt "för idag" i exemplet ovan med "</b>\n" så ska ereg:en fungera.

Det här med att sidan ska uppdateras varannan minut hänger jag inte riktigt med på.
Meningen med skriptet ovan är att sidan (som hämtas in) ska kunna förändras, och det som skrivs ut m h a skriptet ska ändå bli rätt. Om du bara hade tänkt ha det hela som en vanlig sida ska det inte vara några problem, men om du hade tänkt lägga in det i en databas får du titta på program som kör skriptet med bestämda intervaller, eller på bestämda tider.

263 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)