» »

PHP funkcija ki poišče datoteko v mapi in jo includa

PHP funkcija ki poišče datoteko v mapi in jo includa

winlins ::

Pozdravljeni,

Zanima me če kdo ve za php funkcijo. Imam funkcijo:

<?php
	$x = $_GET['stran'];
	
	if (isset($_GET['stran']))
	{
		include_once $x . ".php";
	}	
	else
	{
                echo "nekaj";
        }
?>


Ta deluje približno tako: ko kliknem na prvi link (menu) na indexni strani mi preveri če je stran v istem direktoriju in includa stran. Problem pa nastane če jaz imam indexne strani v podmapah vrže error da strani ni mogoče najti. Jaz bi pa rabil funkcijo da če ta pogoj ne drži gre avtomatično iskat file v drug direktorij in ko ga najde ga vstavi.

Lp, Gregor

videc ::

Rekurzija.

winlins ::

Primer kode. Lepo prosim

videc ::

Težka bo, ker se ne ukvarjam s PHP-jem. Lahko ti v psevdo kodi napišem.
Funkcija idx_file()
if file exists end
else idx_File();
}
torej, kličeš isto funkcijo znotraj same sebe. Tole sem našel, če bi ti pomagalo:
http://php.net/manual/en/function.readd... (skrolaj dol)

A variation on listing all the files in a directory recursively. The code illustrates a basic technique : the use of an auxiliary function. It avoids building temporary lists which are merged on the way back. Note that the array which collects the information must be passed by reference. 

<?php 
function listdir($dir='.') { 
    if (!is_dir($dir)) { 
        return false; 
    } 
    
    $files = array(); 
    listdiraux($dir, $files); 

    return $files; 
} 

function listdiraux($dir, &$files) { 
    $handle = opendir($dir); 
    while (($file = readdir($handle)) !== false) { 
        if ($file == '.' || $file == '..') { 
            continue; 
        } 
        $filepath = $dir == '.' ? $file : $dir . '/' . $file; 
        if (is_link($filepath)) 
            continue; 
        if (is_file($filepath)) 
            $files[] = $filepath; 
        else if (is_dir($filepath)) 
            listdiraux($filepath, $files); 
    } 
    closedir($handle); 
} 

$files = listdir('.'); 
sort($files, SORT_LOCALE_STRING); 

foreach ($files as $f) { 
    echo  $f, "\n"; 
} 
?> 

winlins ::

Hvala

HardFu ::

upam da tega ne mislis kam v javnost dat, taka koda kar klice po zlorabi.
http://codeable.io

SeTAr ::

funkcija isset ne preverja če datoteka obstaja, to počne funkcija file_exists. Tako da niti tvoja zgornja koda ne počne tega, kar ti misliš...

winlins ::

Pa je to sploh možno narediti ali naj poiščem drugo pot. Sem pa začetnik v php in to kar delam je pa bolj tak tak.

Jaz samo rabim to: da ko includa file in ga ne najde naj gre iskat v drug direktorij kjer je npr. 40 datotek.php

Zgodovina sprememb…

  • spremenil: winlins ()

HardFu ::

Drugo pot si najdi, po moznosti taksno z bazo. Ce pa ze moras prek includov potem pa opusti iskanje ampak se enostavno prepricaj da file tam je.
http://codeable.io


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PHP in objektno programiranje (strani: 1 2 )

Oddelek: Programiranje
8511829 (10296) kivi113
»

Download vsebine strani s JS

Oddelek: Izdelava spletišč
472519 (1817) MrBrdo
»

Osnovno php vprašanje

Oddelek: Izdelava spletišč
141541 (1262) R33D3M33R
»

Includanje

Oddelek: Izdelava spletišč
71035 (879) McAjvar
»

konec vseh php ukazov

Oddelek: Programiranje
12992 (824) mustafa111

Več podobnih tem