Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Sivun parserointi

Pallo [09.02.2008 12:06:00]

#

Hei!

Sivun lähdekoodissa on seuraavanlainen kohta:

**jokusivu.com**

<table>

<tr>

<td>Päivän sana on:</td>
<td>koira</td>

</tr>

</table>

Tämän solun sisältö vaihtuu siis joka päivä.

<td>koira</td>

Tarkoituksena olisi tehdä skripti, joka parseroisi sivulta edellä mainitun solun. Eli oma sivu näyttäisi jokseenkin tältä:

<b> Jokusivu.comin päivän sana on:</b>
<i>koira</i>!

Kuinka tämä onnistuisi?

Niko [09.02.2008 13:03:05]

#

preg_match

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpsl

Kirjoittamisee esim.

http://www.regexbuddy.com/

(ilmainen versio kun sivuilla ei ole linkkiä: http://www.regexbuddy.com/cgi-bin/SetupRegexBuddyDemo.exe)

Antti Laaksonen [09.02.2008 22:44:03]

#

Sanan voi etsiä myös strpos-funktion avulla:

<?php
// luetaan sivun sisältö muuttujaan
$tiedot = file_get_contents("jokusivu.html");
// etsitään, missä kohdassa lukee "Päivän sana on"
$kohta1 = strpos($tiedot, "Päivän sana on");
// etsitään siitä seuraava alkava td-tagi
$kohta2 = strpos($tiedot, "<td>", $kohta1);
// etsitään siitä seuraava päättyvä td-tagi
$kohta3 = strpos($tiedot, "</td>", $kohta2);
// nyt tiedetään sanan alkukohta ja pituus
$sana = substr($tiedot, $kohta2 + 4, $kohta3 - $kohta2 - 4);
// tulostetaan vielä löydetty sana
echo $sana;
?>

peg [22.02.2008 01:28:08]

#

Toi edellinen on yleispätevämpi, mutta joskus tällainenkin hirviö toimii.

<?php
$teksti = "STRSTR ja STRREV - alku jää pois ja esimerkki tulostaa haettujen sanojen välisen merkkijonon ja loppu jää pois.<br>";
echo $teksti;
$alku = "alku";
$loppu = strrev("jonon");
$teksti = strstr($teksti, $alku);
echo strrev(strstr(strrev($teksti),$loppu) );
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta