Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Internet > Web razvoj > Serverske aplikacije i baze podataka
Uputstvo Članstvo Kalendar Današnje poruke Pretraži

Serverske aplikacije i baze podataka PHP, Perl, ASP, ASP .NET, ColdFusion...
MySQL, PostgreSQL, MSQL, Oracle...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 1.6.2009, 14:21   #1
dbaja
Veteran
 
Avatar korisnika dbaja
 
Član od: 4.12.2005.
Poruke: 1.180
Zahvalnice: 50
Zahvaljeno 214 puta na 130 poruka
Određen forumom Problem sa znakom '%' u php skriptu

Kako bih mogao progurati znak % a da Php ne prijavi warning (i naravno ne prosledi tekst u kome se znak nalazi citacu) u ovom slucaju:

printf("<td width='50%'>prva kolona tabele</td>");

Dakle, potrebno mi je da ta neka tabela ima kolonu koja će biti široka baš 50% od neke navedene vrednosti.
\% nije pomoglo.

Ima li Holodoca ovde?
dbaja je offline   Odgovor sa citatom ove poruke
Stara 1.6.2009, 14:29   #2
dbaja
Veteran
 
Avatar korisnika dbaja
 
Član od: 4.12.2005.
Poruke: 1.180
Zahvalnice: 50
Zahvaljeno 214 puta na 130 poruka
Određen forumom Re: Problem sa znakom '%' u php skriptu

Sorry, nasao sam:

Spoiler za resenje:
Also, if the percent sign is an operator in this situation, then how do you print a percent sign? You do this by putting two percent signs in the formatting string where you want the percent to occur.
printf('%d%%', 25)
// results is "25%"


Može se zatvoriti tema, Holodoče, uživaj, nemoj da se cimaš
dbaja je offline   Odgovor sa citatom ove poruke
Stara 1.6.2009, 15:26   #3
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: Problem sa znakom '%' u php skriptu

Ne cimam se samo da dodam Kada se štampaju ovako jednostavni sadržaji koji u sebi ne sadrže promenjljive ili ne moraju da se formatiraju onda slobodno može da se koriste obični jezički konstrukti umesto printf funkcije koja je inače najzahtevnija kada je u pitanju ispis teksta u PHP-u.

Tako primera radi može da se koristi najobičniji echo ili print koji ne formatiraju sadržaj i veoma su brze.
PHP kod:
<?php
echo("<td width='50%'>prva kolona tabele</td>");
print(
"<td width='50%'>prva kolona tabele</td>");
?>
holodoc je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku holodoc na korisnoj poruci:
dbaja (2.6.2009)
Stara 2.6.2009, 9:11   #4
dbaja
Veteran
 
Avatar korisnika dbaja
 
Član od: 4.12.2005.
Poruke: 1.180
Zahvalnice: 50
Zahvaljeno 214 puta na 130 poruka
Određen forumom Re: Problem sa znakom '%' u php skriptu

Citat:
holodoc kaže: Pregled poruke
...Tako primera radi može da se koristi najobičniji echo ili print koji ne formatiraju sadržaj i veoma su brze.
PHP kod:
<?php
echo("<td width='50%'>prva kolona tabele</td>");
print(
"<td width='50%'>prva kolona tabele</td>");
?>
Eto, to mi nije palo ni na kraj pameti. Više od pola sata ubijao sam se da otkrijem šta me zeza i onda, jedva dođem do nekog online helpa.
A zašto sam koristio printf umesto print ili echo, da me ubiješ ne znam... valjda je bilo u nekom ranijem kodu koji sam uzeo u ovom slučaju. U svakom slučaju HVALA na korisnim informacijama za ubuduće.
dbaja je offline   Odgovor sa citatom ove poruke
Stara 2.6.2009, 9:38   #5
Patton
Deo inventara foruma
 
Avatar korisnika Patton
 
Član od: 1.11.2005.
Lokacija: Silent Hill
Poruke: 4.647
Zahvalnice: 157
Zahvaljeno 904 puta na 493 poruka
Slanje poruke preko ICQ-a korisniku Patton Slanje poruke preko MSN-a korisniku Patton Slanje poruke preko Yahooa korisniku Patton
Određen forumom Re: Problem sa znakom '%' u php skriptu

Nema puno veze sa temom, ali ima veze sa ispisom na ekran... Recimo da hocu da ispisem gomilu blokova html koda kroz php... da li je brze echo/print ili include? Koliko kontam za include je potrebno da server proceprka hard disk i potrazi taj fajl ili mozda postoji neko keshiranje da se ti blokovi ne ucitavaju non-stop?
Patton je offline   Odgovor sa citatom ove poruke
Stara 2.6.2009, 13:36   #6
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.893 puta na 1.078 poruka
Određen forumom Re: Problem sa znakom '%' u php skriptu

Citat:
dbaja kaže: Pregled poruke
A zašto sam koristio printf umesto print ili echo, da me ubiješ ne znam... valjda je bilo u nekom ranijem kodu koji sam uzeo u ovom slučaju.
printf je česta navika ljudi koji na PHP prelaze iz C-olikih jezika tako da to generalno nije ništa neobično. PHP je baš prepun funkcija koje rade jednu te istu stvar ali su pogodnije za korišćenje u nekim specijalnim situacijama.
Citat:
Patton kaže: Pregled poruke
Nema puno veze sa temom, ali ima veze sa ispisom na ekran... Recimo da hocu da ispisem gomilu blokova html koda kroz php... da li je brze echo/print ili include? Koliko kontam za include je potrebno da server proceprka hard disk i potrazi taj fajl ili mozda postoji neko keshiranje da se ti blokovi ne ucitavaju non-stop?
Jezički konstrukti, koji su sastavni delovi samog jezgra jezika, su uvek brži od funkcija kakva je recimo printf. Što se tiče odnosa brzina između samog echo-a i printa ona praktično ne postoji ali postoji određena razlika u vremenu izvršavanja za različite tipove stringova. Naime, dva najčešća oblika korišćenih stringova u PHP-u su literali (stringovi oivičeni jednostrukim navodnicima) i deliterali (stringovi oivičeni dvostrukim navodnicima). Najveća razlika između ova dva oblika stringa je u tome što se literali štampaju upravo onako kako su napisani (literalno ) tako da ukoliko se u okviru stringa i nađe neka promenjljiva ona se neće parsirati (interpretirati u stringu i biti zamenjena njenom vrednošću).
PHP kod:
<?php
/*
* Upotreba literalnog stringa
*/
echo 'You have one message: $message';
/*
* Rezultat:
* You have one message: $message
*/
?>
PHP kod:
<?php
/*
* Upotreba deliteralnog stringa
*/
echo "You have one message: $message";
/*
* Rezultat:
* You have one message: Red alert! All hands man your battlestations!
*/
?>
Za male količine teksta razlika ne postoji. Međutim, ukoliko postoji potreba da stringovi sadrže promenjljive koje recimo mogu da sadrže neki poveći HTML kod onda se javljaju male razlike u korist literala koje opet nisu toliko drastične. Naravoučenije, kada god možete koristite literale, za definisanje konstanti, statičnih stringova itd.

Što se tiče najboljeg načina za ispis blokova koda generalno možeš da koristiš dva pristupa.

Jedan od relativno manje poznatih je upotreba heredoca. Heredoci predstavljaju neku vrstu zamene za <![CDATA[...]]> kontejnere iz SGML-a i mogu sadržati apsolutno svaku vrstu teksta, bio to HTML, CSS ili neki drugi kod. Korisni su zato što ako je potrebno na brzaka negde konstruisati blok HTML koda nije potrebno escape-ovati duple navodnike a promenjljive se parsiraju (heredoc se ponaša kao deliteral). Jedina mana heredoca je što se mora poštovati striktna sintaksa njegovog kreiranja što podrazumeva da mora da započne sa tri znaka manje <<< koje bez razmaka prati otvarajući name tag (potpuno proizvoljan naziv kao HTMLCODE u primeru dole), zatim sledi potpuno proizvoljan tekst i na kraju zatvarajući name tag koji mora da počne u prvoj koloni linije u kome se nalazi zatvrajući tag! Ovo praktično znači da kod heredoca ne može da se koristi uvlačenje teksta kod formatiranja izgleda koda gde se ugnježdeni blokovi uvlače automatski tabovima. Zato se često dešava da ih ljudi ne koriste. Evo primera.
PHP kod:
<?php
$message 
"Red alert! All hands man your battlestations!";
echo <<< HTMLCODE
<style type="text/css">
<!--
.redAlert {
    position: absolute;
    width: 500px;
    height: 150px;
    top: 50%;
    left: 50%;
    margin: -75px 0 0 -250px;
    padding:30px 10px;
    border:5px double #F00;
    background:#000;
    color:#F00;
    font-family: Arial, Verdana, Sans-serif;
    font-size: 3em;
    font-weight:bold;
    text-align:center;
}
-->
</style>
<div class="redAlert">
    
$message
</div>
HTMLCODE;
?>
Heredoc se može dodeliti i klasičnoj PHP promenljivoj.
PHP kod:
<?php
$htmlCode 
= <<<HTMLCODE
...
HTMLCODE;
?>
Što se tiče include odnosno require učitavanja fajlova potrebno je na početku odmah raščistiti šta se učitava. Ukoliko se učitava klasičan PHP kod onda zaista nema potrebe za nekim preteranim keširanjem sadržaja osim ako se ne radi o aplikaciji koja će imati preko 3-5 miliona hitova mesečno. U slučajevima da je ipak potrebno optimizovati i učitavanje klasičnih PHP code fajlova postoje tehnike kako je moguće optimizovati učitavanje u zakvim slučajevima. U OOP PHP-u se najčešće koristi "lazy loading" tj. učitavanje klasa samo po potrebi čime se eliminiše mogućnost da se neke klase (tj. fajlovi) učitavaju bez potrebe. Svi savremeni PHP framework sistemi (Zend Framework, CodeIgniter itd.) podržavaju "lazy loading". Takođe, ako se često učitavaju jedni te isti podaci onda može da se iskoriste prednosti nekih od PHP ekstenzija za keširanje kao što su SHMOP, APC i MemCache koji omogućavaju da se određeni podaci razmenjuju na nivou celog servera odnosno da se optimizuje rad sa najčešćim uskim grlom PHP aplikacija, database serverom.

Ukoliko pod keširanjem podrazumevaš keširanje rezultata koji se šalju klijentu za to postoji dosta kvalitetnih rešenja od čega je recimo jedan od najpoznatijih Smarty koji služi za kreiranje HTML šablona za prikaz rezultata obrade kroz recimo PHP. Poseduje veoma dobar sistem keširanja tako da se recimo statični delovi aplikacije ili oni koji se još uvek nalaze nepromenjeni u kešu Smarty-ja povlače iz keša. Naravno, ukoliko ne želiš da koristiš gotovo rešenje u svakom trenutku možeš se baciti na razvoj sosptvenog template sistema koji bi sadržao samo ono što je tebi potrebno. Ako ipak želiš da probaš provereno rešenje bez mnogo muka Smarty je tvoj odgovor

Optimizacija je inače baš baš interesantna tema tako da ako zatreba još dodatnih informacija tu smo Raduljko i ja

Poslednja ispravka: holodoc (2.6.2009 u 13:53)
holodoc je offline   Odgovor sa citatom ove poruke
Sledećih 2 korisnika se zahvaljuje korisniku holodoc na korisnoj poruci:
EclipsE (2.6.2009), Patton (2.6.2009)
Odgovor

Bookmarks sajtovi


Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Problem sa 3DSM 8 - problem sa konjem M.A.G.E 3D radovi 7 29.12.2008 11:27
Problem sa TASKBAROM Dapper Operativni sistemi 6 11.12.2008 17:01
Avetinjski direktorijum! (žestok problem sa file systemom) obZen Operativni sistemi 5 13.11.2008 14:50
Problem sa startovanjem igrica Chemist Akcione igre 6 27.1.2008 10:41


Sva vremena su po Griniču +2 h. Sada je 18:10.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com