DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > PHP
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

PHP PHP aplikacije, Smarty, PEAR

Odgovori
 
Alati teme Način prikaza
Staro 18. 10. 2009.   #11
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
Pa pazi ovo, koji je OBJEKTIVAN razlog da se onemogući:

PHP kôd:
set_magic_quotes_runtime(0); 
A možeš i dalje:
PHP kôd:
ini_set("magic_quotes_runtime"0); 
Prvo je deprecated, a drugo je sada ok? Zbog čega?
I magic_quotes_runtime od verzije 5.3 spada u DEPRECATED kategoriju kao i sve što je na bilo koji način povezano za magic_quotes sistemom.
Citat:
Originalno napisao bluesman Pogledajte poruku
Slažem se da su te magic quotes samo pravile nepotrebnu zabunu i bile uzrok mnogih bug-ova, ali zašto izbaciti funkciju? Kada bi stavili da funkcija stoji samo ne radi ništa (jer je ionako izbačeno magic quotes) je daleko bolje za backward compatibility nego da kompletno izbace funkciju pa se generiše fatal error i puca script.
Još od kako se prvi put pojavio na PHP sceni za magic_quotes sistem je jasno stavljeno do znanja da je zbog kompatibilnosti sa starijim verzijama PHPa i potencijalnih problema sa konfiguracijama servera potrebno da kod bude u mogućnosti da funkcioniše i kada je magic_quoutes uključen i kada je isključen. Ja mislim da je to bila ubedljivo najčešće navođena napomena po raznim tutorijalima, kursevima i dokumentaciji. Ako prelazni period od pa sad već skoro više od 10 godina od kako se termin magic quotess prvi put pojavio (PHP v2) nije dovoljan da se neke loše programerske navike eliminišu onda zaista nemam komentara.
Citat:
Originalno napisao bluesman Pogledajte poruku
Takođe sam puno koristio {} u stringovima, a šta sada da radim? Da pretražujem svuda gde sam to koristio da mi script ne bi pucao zbog gluposti.
"Vitičaste" zagrade u PHP5.3 i dalje omogućavaju da string podaci u sebi sadrže blokove koji referenciraju promenjljive tipa "Nešto {$promenjljiva} još nešto" ali nije moguće više pristupati karakterima stringa putem vitičastih zagrada tipa $promenjljiva{8}.
Citat:
Originalno napisao bluesman Pogledajte poruku
Tako će i ovi što prave razne Joomle, CodeIgnitere i ostale slične stvari da totalno pošize od milijarde pitanja "od jednom mi se pojavljuje neka greška" ili "ne radi mi sajt" ili "prikazuje mi se prazna strana".
Neće oni da šize nego korisnici tih sistema mada iskreno i bez novog PHPa nisu se nešto proslavili
Citat:
Originalno napisao bluesman Pogledajte poruku
Što se tiče hosting provajdera, tu se na žalost najmanje pitaš ti. Prvo što retko imaš uticaja na izbor provajdera, a drugo što imaš još manje uticaja na njihove odluke.
Ovo je sada već pre svega pitanje ozbiljnosti naručioca posla jer ako se već na samom početku škrtari na kvalitetnom hostingu mislim da je pametnije celu stvar odmah na početku saseći i sačuvati živce. A ozbiljni hosting provajderi itekako vode računa o softverskoj sceni i potencijalnim problemima koji mogu da se jave sa softverom njihovih klijenata. Čak i da se kasnije tokom eksploatacije stvori neki problem izazvan svojevoljom provajdera postoji jedna jako efikasna pravna zaštita od maltretiranja klijenta a to je navođenje tačnih tehničkih specifikacija eksploatacionog okruženja. Odgovarati za samovolju hosting provajdera koji je samoinicijativno instalirao problematičnu verziju PHPa uprkos tehničkoj specifikaciji bi bilo otprilike isto kao kada bi neko sada tužio razvojni tim zato što je udario grom u hosting server na kome se nalazi sajt

Usput evo jednog interesantnog dokumenta za one koje zanima šta je to novo što PHP 5.3 (realno i PHP "šestica") zaista donosi sa sobom.

http://conf.phpquebec.com/slides/200...uebec_2009.pdf
holodoc je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #12
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Jel' vas dvojica mene nešto palite ili šta?

Citat:
Originalno napisao dinke Pogledajte poruku
Sticem utisak da ovo nisi skapirao. Ne radi se o iskljucenju "complex" sintakse (tipa "ovo je string sa varijablom {$var}" vec o tretiranju stringa kao niz (kao u C-u) tipa treci char je $string[2]. Ranije je za to moglo da se koristi $string{2} a sada je to deprecated.
A onda i mister holodoc:

Citat:
Originalno napisao holodoc Pogledajte poruku
"Vitičaste" zagrade u PHP5.3 i dalje omogućavaju da string podaci u sebi sadrže blokove koji referenciraju promenjljive tipa "Nešto {$promenjljiva} još nešto" ali nije moguće više pristupati karakterima stringa putem vitičastih zagrada tipa $promenjljiva{8}.
'ajde? Pa o tome i pričam, od jednom promene sintaksu i ne možeš da pročitaš određeni karakter stringa sa {N} već sa [N]... i to je kao ok u verziji većoj od 0.1 beta promeniti sintaksu jezika? I kada to ostane - ide parse error i pukne script.

I onda dinketovo rešenje je:
Citat:
Originalno napisao dinke Pogledajte poruku
Kao i za ereg(i) i kod ovoga jedan search/replace resava problem
^ Zbog takvog predloga sam siguran da me u stvari zajebavaš . To možda i prođe kada imaš 1 ili 2 sajta. Šta da radim sa ostalim sajtovima? Da menjam jedan po jedan narednih 6 meseci?

Velika je razlika između "depricated" i "parse error", a to drugo će upravo da se desi kada izbace to što su rekli. Za ovo prvo može da se isključi notice, a zbog ovog drugog ti ne radi script. Ne znam da li me razumete? Svi scriptovi u kojima ostanu funkcije koje su ovi odlučili da izbrišu, ili "nepostojeća sintaksa", će generisati error - ne rade - kraj! Nije više ni u pitanju da li ti smeta E_NOTICE ili bilo šta - script se i ne izvrši.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!

Poslednja izmena od bluesman : 18. 10. 2009. u 02:30.
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #13
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

^Za Beano kazes lepo adminima da ne stavljaju nista novije od PHP 5.3 i resen problem (pod uslovom da te poslusaju, meni uredno trchi neki mysql 5.1 preview na production masini, bez komentara).

Sto se sajtova ostalih klijenata tice, mozda je stvarno vreme da pocnes da potpisujes ugovor da taj i taj sajt garantovano radi za tu i tu verziju PHP-a, apache-a, mysql-a bla bla bla ... i da odrzavanje (sto ce reci izmedju ostalog i update koda u ovakvim slucajevima kada je narusen backward compability) naplacujes posebno.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #14
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Da, slažem se da to može da šljaka u takvom "idiličnom" okruženju (mada se i tamo dešava da neko instalira nešto 'nako... da proba), ali postojao je život i pre i posle Beano
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #15
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
'ajde? Pa o tome i pričam, od jednom promene sintaksu i ne možeš da pročitaš određeni karakter stringa sa {N} već sa [N]... i to je kao ok u verziji većoj od 0.1 beta promeniti sintaksu jezika? I kada to ostane - ide parse error i pukne script.
Iskreno ni ne sećam se kada sam poslednji put video kod koji tako manipuliše sa stringovima tako da što se mene lično tiče ovo i nije nešto što će mi nedostajati.

S druge strane PHP vuče sintaksičke korene iz C-a u kome se elementima stringa (karakterima) pristupa uglastim zagradama a[0], a[1] tako da ne vidim razlog zbog čega je uopšte i uvedena ova alternativna sintaksa sa vitičastim zagradama osim da se nastavi tradicija PHPa da omogućava previše različitih načina da se jedna ista stvar odradi i tako stvori dodatni prostor za greške.
holodoc je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #16
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Molim te, daj mi primer kako ti "izvlačiš" recimo 3 karakter iz nekog stringa. Stvarno me interesuje koje je to bolje i preglednije rešenje.

I da, kada sam ja prvi put pokušao tako nešto, i ja sam probao sa $string[N], očekujući da je ista sintaksa kao u C, međutim ako su već uveli nešto (koliko god se [ne]slagali sa tim) što se vuče jako dugo, kako mogu tek tako da odluče da to izbace od sledeće verzije.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #17
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Potpisujem da je u ranijim verzijama manuala stajalo samo $string{2} tj. u dokumentaciji je stajalo da je obavezno koriscene viticastih zagrada za pristup x-tom elementu niza a ne (kao u C-u) uglastih.

E sad da li je to i ranije radilo i sa uglastim i sa viticastim pre nego se neko setio da to i dokumentuje - ne bih znao.

@bluesman
Fakat najjednostavniji nacin da izvuces n-ti element u stringu je bas ovaj pristup
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #18
krcko
A suicide bomber!
Certified
 
Avatar krcko
 
Datum učlanjenja: 05.08.2005
Lokacija: Beograd
Poruke: 63
Hvala: 1
2 "Hvala" u 2 poruka
krcko is on a distinguished road
Pošaljite poruku preko MSN za krcko Pošaljite poruku preko Skype™ za krcko
Default

sto se tice {} vs [] sintaxe za pristupanje pojedinacnim karakterima stringa, ja mogu da potpisem da je u predhodnim verzijama manuala (pre nego sto je 5.3 i zapocet) pisalo da {} sintaxa nije preporucljiva i da treba koristiti [].

ja se php-om bavim od verzije 5 (mada sam bio prinudjen i da pisem php4-compatible kod) i nikada nisam koristio {} vec bas []...

a sto se samog PHP 5.3 tj PHP 6 tice meni se neke "novotarije" bas svidjaju (closures.. hell yea!), dok su mi neke mnooogo lose uradjenje (tipa / u nejmspejsima!?!?! to mi toliko izgleda neprirodno i ruzno da nemam reci... mogli su lepo da koriste . ili eventualno : ako im je . previse tesko za implementaciju - a svaki context-aware parser/kompajler bi bez problema mogao u ovakvoj situaciji da podrzi tacku kao delimiter)...

i thumbs up za sve deprecated fje! (mada se slazem da je mnogo bolje ostaviti fju koja ne radi nista nego dizati E_DEPRECATED, ali sa function_exists lako moze da se 90% koda koji koristi te fje natera da igra po pravilima sestice...)
__________________
jQuery addict!
krcko je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #19
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao bluesman Pogledajte poruku
Molim te, daj mi primer kako ti "izvlačiš" recimo 3 karakter iz nekog stringa. Stvarno me interesuje koje je to bolje i preglednije rešenje.
Pretpostavljam da ovde misliš na pristup "trećem" karakteru ali u svakom slučaju dotaći ću i varijantu "izvlačenja" dela stringa.

Dakle, ako bih ikada bio u situaciji da moram da pristupim sadržaju određenog indeksa stringa u PHPu onda bih sigurno koristio sintaksu sa uglastim zagradama $string[index] ne zato što teram inat ili što je ona možda bolja i preglednija već zato što je svakako logičnija, tradicionalnija i ustaljenija varijanta od "vitičaste" alternative. Drugim rečima svako ko se ikada dotakao bilo kog programskog jezika koji podržava manipulaciju stringova kroz nizove zna da se indeksima stringa pristupa korišćenjem uglastih zagrada. To što PHP podržava i ovu alternativnu sintaksu je jedna od njegovih specifičnosti koja verovatno nikada nije trebala da ugleda svetlost dana ali valjda je postalo jasno do sada da je PHP tehnologija za koju važi pravilo da nove i specifične stvari i ne moraju nužno da budu bolje

Što se tiče "izvlačenja" dela stringa tu verovatno ne bi trebalo da bude nekakve nedoumice. PHP je bar takav da je velika verovatnoća da za sve što može da se reši jezičkim konstruktima postoji i odgovarajuća funkcija. U konkretnom primeru substr bi trebalo da bude dovoljno dobro rešenje.
Citat:
Originalno napisao bluesman Pogledajte poruku
I da, kada sam ja prvi put pokušao tako nešto, i ja sam probao sa $string[N], očekujući da je ista sintaksa kao u C, međutim ako su već uveli nešto (koliko god se [ne]slagali sa tim) što se vuče jako dugo, kako mogu tek tako da odluče da to izbace od sledeće verzije.
Nažalost ovaj deo oko "razlike u sintaksi sa C jezikom" nisam baš razumeo Sledeća dva primera rade potpuno istu stvar a jedina realna razlika koju ja vidim u njima su čisto vezane za sintaksičke razlike u jezicima.
Kôd:
#include <stdio.h>

int main(){
    int i;
    char a[25] = "Test string!";
    
    for(i = 0;i < strlen(a); i++){
        printf("%c", a[i]); 
    }	
    return 0;
}
Kôd:
<?php
$string = "Test string!";
for($i = 0; $i < strlen($string); $i++){
    echo $string[$i];   
}
?>
Da rezimiram. "Vitičasta sintaksa", posebno njen kompleksni oblik, je po meni bila i još uvek jeste potpuno nepotrebna stvar u PHPu i iskreno mogu da kažem da mi se odluka o tome da otpadne u "kastriranoj" 5.3 verziji čini kao potpuno pozitivna stvar. Ono gde ljudi očigledno greše kada kažu da je to potpuno neprihvatljivo zbog kompatibilnosti sa postojećim kodom je što PHP 5.3 smatraju logičnim nastavkom 5.x game što jednostavno nije tačno. PHP 5.3 je čista "izvidnica" novoj "šestici" i kao takvog ga treba i posmatrati a siguran sam da dok nova verzija ne ugleda svetlost dana da će bar još koja velika revizija "petice" da izađe.

Inače svako može da učestvuje u davanju predloga vezanih za nove verzije i revizije PHPa putem ogromnih mailing lista na matičnom sajtu a ono što danas nosi naziv "PHP 5.3" verovali ili ne je uglavnom plod diskusije i smerova na koje je sama zajednica najviše uticala

Poslednja izmena od holodoc : 18. 10. 2009. u 22:57. Razlog: Type loading error...
holodoc je offline   Odgovorite uz citat
Staro 18. 10. 2009.   #20
holodoc
član
Certified
 
Datum učlanjenja: 27.11.2007
Poruke: 71
Hvala: 10
12 "Hvala" u 11 poruka
holodoc is on a distinguished road
Default

Citat:
Originalno napisao dinke Pogledajte poruku
Potpisujem da je u ranijim verzijama manuala stajalo samo $string{2} tj. u dokumentaciji je stajalo da je obavezno koriscene viticastih zagrada za pristup x-tom elementu niza a ne (kao u C-u) uglastih.
Nažalost koliko god PHP manual bio koristan opšte je poznato da on nije baš bez grešaka pa se često dešavalo da se neke stvari potpuno pogrešno dokumentuju. Da li je to bio slučaj i sa ovim primerom ne bih znao ali kompleksna "vitičasta" sintaksa je uvedena u PHP 4 dok recimo klasično indeksiranje stringova ako me pamćenje ne vara postoji još od PHP verzije 2 (naravno one "prepisane" savremenije).
holodoc je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Ovo je trebao biti PHP6! Ilija Studen PHP 7 10. 08. 2008. 22:29


Vreme je GMT +2. Trenutno vreme je 11:47.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.