Autor Zpráva
Monkeys
Profil *
Riesim takyto problem:

Mam triedu v ktorej je funkcia ktora ziskava z foldru vsetky obrazky.

class image {
public function obrazky(){

$template = "cesta-k-suboru-sablony.php";
//kod pre obrazky v premennej $data

return str_replace("{list-image}", $data, file_get_contents($template));

}
}

vsetko funguje ako ma tabulka sa vypise, no problem nastava ked tent isty subor volam z ajaxu.

$.post(
"cesta-k-suboru.php", //z tohoto suboru sa vola subor vysie originalny subor pre vypis
function(data){},
html
);

ajaxovy php subor:

include 'cesta-k-originalnemu-suboru.php'; //toto je includovany subor v ktorom sa spracuje cely obsah 

$image = new image();
$list = $image->obrazky();

return $list;  // toto by malo vratit cely obsah

Nevracia mi to nic ale hlasi mi to chybu ze cesta k file_get_content je neplatna, pritom ak ju volam v php tak vsetko prebehne OK
Nerozumiem preco to hlasi takuto chybu.
Moze byt problem aj v tom ze kazdy zo suborov je zanoreny v inej zlozke ?

vdaka
M.
scheras
Profil *
Zjisti si pomocí funkce getcwd(); pracovní adresář, opravdu může být chyba v těch cestách.
Monkeys
Profil *
scheras:

Vdaka pomohlo

Vyriesil som to nasledovne

$template = "xxx/xxx/templates/contents/image-list.php";

if(file_exists($template))
{
// zavola sa pri samotnom nacitani 
$newTemplate = str_replace("{ad:image-list}", $data, file_get_contents($template));
}
else
{
zavola sa z ajaxu
$newTemplate = str_replace("{ad:image-list}", $data, file_get_contents("../../../../../" . $template));
}

Celkovo by som potreboval nieco co by mi ulahcilo pracu s cestami lebo niekedy fakt neviem kolko bodiek s lomitkom musim pouzit :)

M.
Tori
Profil
Monkeys:
Celkovo by som potreboval nieco co by mi ulahcilo pracu s cestami
Bylo by asi jednodušší si hned na začátku nadefinovat abs. cestu k hlavnímu adresáři aplikace jako konstantu, a pak se všude odkazovat relativně na ni. Má to 2 výhody: můžete používat relativní cesty a zároveň nemusíte nic měnit při přesunu webu na jiný server.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0