Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Include-ongelmia

Mee [09.02.2007 17:38:31]

#

Jos yritän includettaa tiedostoa jonka sisältö on tämännäköinen:

<?php
$haku = strtolower(trim($_GET['search']));
if (empty($haku)) { Tyhja(); die; }
if (file_exists("hakusanat.txt") or TiedostoaEiLoydy())
$hakusanat = file("hakusanat.txt");
for ($i = 0; $i < count($hakusanat); $i++)
{
$tiedot = explode("|", $hakusanat[$i]);
if (eregi($haku, $tiedot[0]))
$laskuri++;
}
if ($laskuri == 0) { EiTuloksia(); }
unset ($hakusanat);
unset ($i);
unset ($tiedot);
if ($laskuri == 1) { $laskuri = $laskuri." sivu"; }
if ($laskuri > 1) { $laskuri = $laskuri." sivua"; }
echo "<p>Löydetty yhteensä $laskuri hakusanalla <b>".chr(34).trim($_GET['search']).chr(34)."</b>.</p>\n";
$hakusanat = file("hakusanat.txt");
for ($i = 0; $i < count($hakusanat); $i++)
{
$tiedot = explode("|", $hakusanat[$i]);
if (eregi($haku, $tiedot[0]))
echo "<p><a href=\"$tiedot[3]\" target='_top'>$tiedot[1]</a><br>$tiedot[2]</p>\n";
}
function Tyhja() {
echo "<p>Käyttääksesi hakukonetta, sinun täytyy kirjoittaa ensin hakusana.</p>";
die; }

function TiedostoaEiLoydy() {
echo "<p>Haun suorittamisessa tapahtui virhe. </p>";
die; }

function EiTuloksia() {
echo "<p>Haun tulokset sanalla <b>".chr(34).trim($_GET['search']).chr(34)."</b>.</p>\n";
echo "<p>Ei valitettavasti löytynyt yhtään sivustoa, mikä vastaisi antamaasi hakusanaa.</p>";
die; }
?>

kaikki includetus-koodin jälkeiset tekstit häviää. Mistä tämä johtuu?

tsuriga [09.02.2007 17:46:14]

#

die (lopettaa koodin suorituksen). Aloita funkkarit pienellä alkukirjaimella ja älä tulosta funkkareissa, vaan palauta dataa. En suosittelisi die:tä käyttämään muutenkaan, sillä se rikkoo sivumerkinnän (asdf, html-koodin) ellet sitten siisti tidylla tms.

Mee [09.02.2007 17:52:35]

#

Kiitos, miten "palauta dataa". Huono kuin olen : (

tsuriga [09.02.2007 18:11:22]

#

esim.

<?php
function tiedostoaEiLoydy() {
  return 'Haun suorittamisessa tapahtui virhe';
  }

$ongelma = tiedostoaEiLoydy();
echo '<p>' . $ongelma . '</p>';

?>

Jos et käytä regexp-hakua niin strpos tms. vastaava on nopeampi, ja unset on komentorakenne, joten jos sitä tahtoisi erottaa jotenkin funktioista niin
unset $var;

Vastaus

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

Tietoa sivustosta