Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: .txt filujen ensimmäinen rivi toisesta hakemistosta.

E.K.Virtanen [15.09.2006 09:29:00]

#

Eli php opiskelu jatkuu, tosin menestys on vaihtelevaa =)

Yritän siis avata hakemiston "links_db/" ja lukea sieltä jokaisesta .txt filusta ensimmäisen rivin josta tulee se mikä näkyy valinta laatikossa. filu.txt on sitten se arvo jonka valinta laatikko välittää eteenpäin.

Nyt vaan on niin että ensimmäinen .txt file ei näy lainkaan valintalaatikossa (tai näkyy tyhjänä rivinä) ja kun valitsen jonkin kategorian niin sieltä ei tulostu mitään.

select_catagories.php

<?php

function list_catagories() {
		$folder = opendir("links_db/");	// täältä luetaan tiedostot
		$file = readdir($folder);
			while ($file) {
				if ($file != "." && $file != "..") { 	// jos ei ole hak. niin sitten se on .txt kun muita filuja siellä ei ole.
						$handlefile = @fopen($file, "r");	// eli avataan se
						$cat_name = fgets($handlefile, 4096);	// luetaan ensimmäinen rivi
						$cat_name = str_replace(array("\r", "\n"), "", $cat_name); // draizin kiva rivinvaihto poistaja
						echo "<option value=\"".$file."\">".$cat_name."</option>";  // tungetaan tiedoston nimi ja ensimmäinen rivi valinta laatikkoon
					fclose($file);

				}
			$file = readdir($folder);
			}
	closedir($folder);
}

?>
<form action="links.php" method="post">
<p>
<select name="category">
<option value="">Links Main menu</option>
<?php list_catagories(); ?>
</select>
<input type="submit" value="Ok">
</p>
</form>

ja tällä sitten luodaan se "linkki lista". html osuus on jo todettu toimivaksi tällä hetkellä käytössä olevalla versiolla.

links.php

(html sorsaa ja <?php include"select_catagories.php"; ?>)

<?php

// .txt file muuttujaan
$cat_file = $_POST['category'];

$handle = @fopen("links_db/".$cat_file, "r");	// avataan se

	if ($handle) 						//
	{
	$turha == fgets($handle, 4096);		// eli se eka rivi pois kummittelemasta koska se on kategorian nimi

	while (!feof($handle)) 				// lähdetään lukemaan loppuja tietoja
		{
		$address = fgets($handle, 4096);	// ekana url
		$site = fgets($handle, 4096);		// sivun nimi
		$desc = fgets($handle, 4096);		// jotain soopaa ko. saitista

		if ($address != "")				// ja jos on jotain mitä tulostaa
			{
			echo "<li><b>";
			echo "<a href=\"".$address."\" target=\"Blank\" >".$site."</a></b><br>";
			echo "<font face=\"Arial\" size=\"2\" color=\"#FFFFBB\">".$desc."</li><br><br></font>";
		}
	}
fclose($handle);
}

?>

E.K.Virtanen [15.09.2006 11:10:57]

#

No ratkaisin sitten aikani pähkäiltyäni homman näin.

function list_catagories() {
$folder = opendir("links_db/");	// täältä luetaan tiedostot
		$file = readdir($folder);
			while ($file) {

				if ($file != "." && $file != "..") { 	// jos ei ole hak. niin sitten se on .txt kun muita filuja siellä ei ole.
					$temp = file("links_db/".$file);
					$cat_name = $temp[0];
					$cat_name = str_replace(array("\r", "\n"), "", $cat_name); // draizin kiva rivinvaihto poistaja
					echo "<option value=\"".$file."\">".$cat_name."</option>";  // tungetaan tiedoston nimi ja ensimmäinen rivi valinta laatikkoon
				}
			$file = readdir($folder);
		}
closedir($folder);

KAuneudesta en tiedä mutta ainakin toimii.

Vastaus

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

Tietoa sivustosta