Php težava
 
klopar 24. jan 2013 23:26:57 Pridružen od:
17. feb 2012
446 objav
78 113 24
#1

Pozdravljeni zopet bi vas prosil za pomoč. Sedaj se je zateknilo pri php-ju. Rad bi napisal kodo, ki bi preverjala ali je datoteka v mapi ali je ni. Ime dobim iz spremenljivke $movie->name, vendar ime ni celotno. Zadeva deluje, če vpišem ročno

ime, rad pa bi, da bi bilo odvisno od spremenljivke.



Primer:



Iz spremenljivke $movie->name dobim ime: test (2005), rad pa bi dobil test (2005) 1X.zip



{$ime = str_replace(':','', $movie->name)}



{$preverjanje = "test (2005) 1X.zip"} // ročno vpisano. Drugače želim tako: {$preverjanje = "$ime"}



{$filename = "../test/$preverjanje"}



{if (file_exists($filename))}



{$je = "je"}

{$je|htmlentities:3:'UTF-8'}

{/if}



{if (!(file_exists($filename)))}



{$ni = "ni"}

{$ni|htmlentities:3:'UTF-8'}

{/if}



Hvala za pomoč in lep pozdrav


všeč(0) ni všeč(1) spam(0)
 
atlet 25. jan 2013 07:00:40 Pridružen od:
13. avg 2008
113 objav
82 2 2
#2

Kaj pa če narediš tako:


$preverjanje = $ime . " 1X.zip";
všeč(1) ni všeč(0) spam(0)
 
Gogy 25. jan 2013 07:20:21 Pridružen od:
17. mar 2007
2491 objav
2064 252 12
#3

Kaj naj bi pomenil ta 1X ?

Je to vedno prisotno pa nikoli v spremenljivki?


všeč(2) ni všeč(0) spam(0)
 
SlimDeluxe 25. jan 2013 08:50:52 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#4

Pozdravljen,

kot prvo ta zadeva ni za v template, ampak v controller ali pa v model.

V templatu več kot toliko ne smeš imeti (če želiš biti dober MVC programer):


{if $movie->has_file()}
nekaj
{else}
nekaj drugega
{/if}

V "Movie" modelu pa imaš potem metodo


public function has_file()
{
return file_exists("../test/$this->name 1X.zip");
}

Namig: namesto relativne poti "../test" definiraj to pot nekje na začetku skripte ali v kakšnem configu:


define('MOJ_DIREKTORIJ', '../test/');

Torej bi v modelu lahko imel tako:


return file_exists(MOJ_DIREKTORIJ ."$this->name 1X.zip");

Good luck mate!


všeč(3) ni všeč(0) spam(0)
Freelance Web Developer
 
klopar 25. jan 2013 10:51:57 Pridružen od:
17. feb 2012
446 objav
78 113 24
#5

Hmm nikakor mi ne rata. atlet to sem poskusil vendar mi ne deluje. 1X je stalno prisoten. SlimDeluxe to sem tudi poskusil, vendar mi potem ne gre koda čez. Mogoče še kakšn nasvet?


všeč(0) ni všeč(2) spam(0)
 
Mešetar 25. jan 2013 10:55:22 Pridružen od:
24. nov 2010
1543 objav
1945 962 114
#6

ce ne opises dobro problema ti ne bo noben znal pomagat



tvoj problem:




Iz spremenljivke $movie->name dobim ime: test (2005), rad pa bi dobil test (2005) 1X.zip




resitev




$preverjanje = $ime . " 1X.zip";




ce pa bos razlozil bolje svoj problem, kaj tocno bi rad dosegel, bos veliko bolj verjetno dobil odgovor


všeč(2) ni všeč(0) spam(0)
 
SlimDeluxe 25. jan 2013 11:33:39 Pridružen od:
29. apr 2010
1223 objav
1022 144 9
#7

Predvidevam, da delaš template v smarty-u. Tam ne moreš uporabljati . za konkatenacijo, ampak

{$preverjanje = "$ime 1X.zip"}

Ali uporabi "cat" modifier.

Ampak to je vse bz, kot rečeno tega se ne počne v templatu. "potem ne gre koda čez" pa ni opis napake, na podlagi katerega bi ti lahko nadalje pomagal.


všeč(1) ni všeč(0) spam(0)
Freelance Web Developer
 
klopar 25. jan 2013 12:38:39 Pridružen od:
17. feb 2012
446 objav
78 113 24
#8

Pa smo poštimal :), najlepša hvala vsem za pomoč, vsak post mi je prišel prav. Zadevo sem rešil čisto preprosto, samo 1X.zip sem moral napisati brez narakovajev in je stvar začela delovati. Si bom pa zapomnil dobre nasvete, kako lahko izboljšam stran. Še enkrat hvala


všeč(1) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se