Oletetaan, että nettisivu sisältää seuraavat koodinpätkät:
Kuvia variksista
Millainen php-skripti osaisi laskea sivulla olevien kuvien määrän? Eli esim. otsikkosivulla "Linnut" on linkki sivulle "kuvia variksista" ja linkin viereen tulostuisi teksti "3 kuvaa".
Kuvia variksista
Millainen php-skripti osaisi laskea sivulla olevien kuvien määrän? Eli esim. otsikkosivulla "Linnut" on linkki sivulle "kuvia variksista" ja linkin viereen tulostuisi teksti "3 kuvaa".
Vastaukset 4
Vanhimmat
$kuvasivunsisalto = file_get_contents("sivu.html");
$kuvienmaara = substr_count($kuvasivunsisalto, '
Kiitos avusta, yritän noista saada jotain aikaan, mutta ensin pitää miettiä toista ongelmaa.
Äsken selitin hieman vajaasti systeemini toimintaa. Eli sivusto jakaantuu osioihin ja sivuihin tähän tyyliin:
www.sivunosoite.com/index.php?osio=linnut&sivu=varis
Sivuilla on eri määrä kuvia, joillakin vain 1, toisilla jopa 10, sivut on nimetty lajin mukaan eli tyyliin varis.php, harakka.php, talitiainen.php. Kuvat on nimetty samalla tavalla kuin sivu, eli varis1.jpg, varis2.jpg, varis3.jpg.
Tavoite on, että skripti tulostaa sivulle "varis" kaikki varis-alkuiset kuvat. Olen vääntänyt tällaisen systeemin, mutta se on todella kankea:
if (file_exists($osio."/".$sivu.".php")) {
include($osio."/".$sivu.".php");
} else {
echo("ERROR! Sivua ei löytynyt.");
}
if (file_exists("kuvat"/".$sivu.".jpg")) {
echo(' }
else {
echo('');
}
if (file_exists("kuvat"/".$sivu."2.jpg")) {
echo(' }
else {
echo('');
}
if (file_exists("kuvat"/".$sivu."3.jpg")) {
echo(' }
else {
echo('');
}
Eli noita if-lauseita pitää toistaa niin kauan, että maksimikuvamäärä tulee täyteen. Onko jokin tapa etsiä yhdellä lauseella kaikki kuvat, joiden nimi alkaa sivunnimellä (eli esim. kaikki varis-alkuiset kuvat), kun kuvien lukumäärää ei tavallaan tiedetä?
No joitain tuollaista voisi tietty käyttää:
chdir("kuvat");
$kuvat = glob($sivu . '*.jpg');
Tuo siis hakisi arrayn sisälle varis*.jpg:t, eli:
$kuvat[0] = "varis.jpg";
$kuvat[1] = "varis2.jpg";
$kuvat[2] = "varistekeejotain.jpg";
Ja sitten tuollainen edellisen viestini tapainen silmukka pitäisi toimia.
Juuri tuollaista tarkoitin, en vain osannut tehdä. Ei oikein ole vielä hallussa kaikki php:n mahdollisuudet.
Suuret kiitokset avusta!