Cum să-i spun În cazul în care vizitatorii sunt punct de vedere geografic Folosind PHP

Clasat in PEAR, php de ShortLikeAFox pe 13 septembrie 2008

Dacă aveţi un site şi doriţi să-i spuneţi-vă în cazul în care utilizatorii sunt provenind din punct de vedere geografic, PHP şi PEAR face acest lucru posibil. Pentru a activa un oaspete de IP într-o locaţie fizică primul lucru pe care urmează să le trebuie să faceţi este să vă asiguraţi că aveţi la Net_Geo PEAR modul. Dacă nu aveţi de modul Net_Geo PEAR, vei avea de a folosi PEAR Package Manager de a dobândi o.

Dacă nu credeţi că aveţi acces la PEAR din cauza pachet de gazduire, a verifica afară această explicaţie cu privire la modul de instalare a PEAR de pe un cont care nu permite accesul în mod implicit. Este scris cu GoDaddy partajate conturi în minte, dar ar trebui să funcţioneze pentru cele mai multe pachete de gazduire, care nu vin cu PEAR înfiinţat.

După ce aţi Net_Geo pachet instalat, durează doar câteva linii de cod pentru a achiziţiona date geografice:

<? php

); require_once ( "Net / Geo.php");
]; $ ip = $ _SERVER [ 'REMOTE_ADDR'];
/ / $ ip = "64.246.30.37";
$ firstNetGeo = new Net_Geo ();
geoData $ = $ firstNetGeo-> getRecord ($ ip);

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitudine: <? Php echo ($ geoData [ 'LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Longitudine: <? Php echo ($ geoData [ 'long']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Tara: <? Php echo ($ geoData [ "Ţara ']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> De stat: <? Php echo ($ geoData [ 'STAT']);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Localitate: <? Php echo ($ geoData [ 'city']);?> <br/>

Codul la locul de muncă:

IP: 66.249.85.132

Latitudine: -25.00

Longitudine: 135.00

Tara: AU

Membru:

Oraş:

Cum de a include în funcţionarea PHP Codul dvs. WordPress Posturi

Posted in WordPress, php de ShortLikeAFox pe 17 august 2008

Deci vrei să fii în stare să utilizaţi PHP în dumneavoastră WordPress blog şi pagini. Asta-i nici o problema. Doar cu ajutorul <? Php ... ... ..?> Se va face WordPress nervos cu excepţia cazului în care vă instalaţi un plug-in primele. Există câteva plugin-uri acolo, că o cerere de a oferi această capacitate, dar cel pe care am găsit cele mai bune lucrări este Exec-PHP. Pentru a începe să utilizaţi PHP cod, urmaţi aceşti paşi:

  1. Descarca Exec-PHP
  2. Instalaţi-l face ca în nici un plug-in (pe linkul de mai sus şi readme fişier va merge tu prin asta)
  3. Dacă sunt în prezent, utilizarea acesteia, trebuie să vă opriţi editor WYSIWYG. Pentru a face acest lucru, mergeţi la utilizatori -> Profilul dumneavoastră şi debifaţi Utilizaţi editorul vizual atunci când scrieţi validare
  4. Începeţi să scrieţi cod PHP place de tine în mod normal ar fi: <? Php .... Cod merge aici?>

Asta e tot ce e de el!

Cum se creează şi se utilizează dinamic Numit Variabilelor cu PHP

Posted in PHP de ShortLikeAFox pe 17 august 2008

Aşa că doriţi să folosiţi numele de variabilă dinamică în codul dumneavoastră. Nici o problemă. Să presupunem că aveţi 100 variabilele numit dog0, dog1, dog2, ...., Dog98, dog99. De ce v-ar dori să utilizeze 100 variabile ca acest loc de o gamă este dincolo de mine, dar nu conteaza pentru acest exemplu. Pentru a stabili aceste variabile într-o buclă de repede puteţi utiliza următoarea:

0 ; $i < 100 ; $i ++ ){ for ($ i = 0; $ i <100; $ i + +) (

; $ variableName = "câine $ i";
variableName = $ $ $ i; / / seturi $ dog1 la 1, $ dog2 la 2, $ câine 34 - 34, etc ....

)

Acum, să spunem că ai vrut să acceseze toate aceste variabile. Puteţi folosi şi următoarele:

0 ; $i < 100 ; $i ++ ){ for ($ i = 0; $ i <100; $ i + +) (

; $ variableName = "câine $ i";
echo ( "<br/>");
echo ( "$ variableName:");
echo ($ $ variableName);

)

Această buclă printuri:

dog0: 0
dog1: 1
dog2: 2
dog3: 3
dog4: 4
dog5: 5
dog6: 6
dog7: 7
dog8: 8

etc ... pana la
dog99: 99

Cum să Intergrate ISBN de acces la paginile de Web Folosind PHP

Posted in PHP de ShortLikeAFox pe 12 august 2008

ISBN-urile sau cu standardul internaţional de carte Cifrele sunt utile de identificare care poate fi folosit pentru a afla informatii despre cărţi individuale. Dacă doriţi să integreze ISBN lookups in aplicatii web PHP face doable.

Etapa întâi: ISBNdb.com este un a creat un API care permite utilizatorilor de pe Web pentru a accesa baza lor de date de ISBN înregistrări. Aici este propria descriere a API:

ISBNdb.com-i de acces la distanţă Application Programming Interface (API) este proiectat pentru a permite alte site-uri web şi independent de aplicaţii utilizează marea de colectare a datelor colectate de către ISBNdb.com din 2003. După cum a scris acest lucru, în iulie 2005, datele include aproape 1800000 carti; aproape 3000000 de milioane de biblioteca de înregistrări; aproape de un milion de subiecţi; sute de mii de autor şi editor de înregistrări analizat din biblioteca de date; mai mult de 10000000 de înregistrări reale şi istoric preţurilor.

Pentru a utiliza această API, trebuie mai întâi să se înscrie. Inregistrare ia literalmente de secunde pentru a completa. Dupa aceasta, va trebui să înfiinţeze o cheie. Taste pentru a vă permite accesul direct la baza de date de la ISBN-vă propriul cod. De ISBNdb.com site-ul face înfiinţarea cheile de usor.

Etapa a doua: Acum sunteţi începe scrierea de cod pentru a interacţiona cu baza de date. O cerere pentru un ISBN lookup va arata ceva de genul:

$ isbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ isbnQuery";

Ti-ar introduce accesul dvs. cheie în loc de XXXXXX. $ IsbnQuery ar fi ISBN număr vă interesează inch $ isbnData este un fişier XML. Pentru a avea acces la aceste date, trebuie să vă lăsaţi de cod stiu ce se face. Ceva de genul acesta va lucra:

) ; $ xmlData = @ simplexml_load_file ($ isbnData) sau mori ( "nici un fişier încărcat");

Acum puteţi accesa variabilele individuale cu apeluri similare cu aceasta:

]->Title ; $ title = $ xmData-> BookList [0] -> BookData [0] -> titlu;

Aici este un exemplu complet de lucru:

<? php

Searchquery $ = "9780684801223"; / / ISBN pentru Ernest Hemingway's Old Man şi a Mării
$ isbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ Searchquery"; / / Nu uitaţi să înlocuiţi XXXXXX cu propriul acces cheie
) ; $ xmlData = @ simplexml_load_file ($ isbnData) sau mori ( "nici un fişier încărcat");
]->Title ; $ title = $ xmlData-> BookList [0] -> BookData [0] -> titlu;
]->AuthorsText ; Autorii $ = $ xmlData-> BookList [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ editor = $ xmlData-> BookList [0] -> BookData [0] -> PublisherText;

); echo ( "$ titlu <br/>");
); echo ( "$ autori <br/>");
); echo ( "$ editor <br/>");

/ / Acest exemplu printuri:
/ / Bătrânul şi marea
/ / Ernest Hemingway
/ / New York: Scribner carte broşată Fiction, 1995.

?>

Cum se face manual Introduceţi un Grup de utilizatori într-un Forum SMF Folosind PHP

Clasat in SMF (Simple Machine Forum), php de ShortLikeAFox pe 30 iulie 2008

Acest ghid presupune că sunteţi familiarizaţi cu meu post: Cum sa manual Introduceţi un utilizator intr-o SMF Forum Folosind PHP.

Am recent cu care se confruntă cu provocarea de a trece atât de benzile de 800 sau de la o bază de date într-un forum SMF. Am confruntat cu o serie de probleme atunci când faceţi mişcare de care nu am să acopere în primul post:

  1. Formatia nume nu au fost garantate de a fi în siguranţă de un caracter de caractere muta în baza de date a SMF. Deci, un fel de nume de modificare a avut funcţia de a fi angajat.
  2. Trupele nu au parole. Deci, unele forme de parola generaţie are nevoie de a fi angajat.

Paşii m-am dus pe cale de a înregistra toate benzile de la forum au fost un pic cam aşa:

Deschideţi baza de date Band

pentru fiecare (Band) (

Generaţi Parola

Redenumire Band cu "sigure" numele

Prinde genera şi informaţiile necesare pentru a introduce utilizatorul

Introduceţi banda în smf_members

Band Trimite un e-mail cu parola

)

Informaţii am avut la dispoziţie de la trupa de baze de date care a fost util incluse: bandName, bandEmail, şi bandWebsite

Aici este parola generaţie funcţie am folosit (blatently luate de la totallyphp.co.uk):

funcţiei createRandomPassword () (

$ caractere = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((double) microtime () * 1000000);

$ i = 0;

$ pass = ";



while ($ i <= 7) (

33; $ num = RAND () 33%;

$ tmp = substr ($ caractere, NUM $, 1);

$ pass = $ pass. $ tmp;

$ i + +;

)

return $ pass;

)

Parola creat aici este relativ slab, dar a fost destul de bun pentru scopul meu. Orice parola generaţie funcţie de lucru ar fi bine aici. Am ales-o pe asta, pentru că va fi uşor să vă amintiţi de membri, dacă acestea nu au ales să-l schimbi.

Cum se face:

/ / Prima trupa a vă conecta la baza de date
$ username = "bandUsername";
$ host = "bandHost";
$ parola mea = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ parola mea") sau a muri ( "nu se poate conecta la server");
("cannot select DB"); mysql_select_db ( "$ db_name") sau a muri ( "nu se poate selecta DB");

/ / Acum sa luam toate benzile de la baza de date
$ query = "select * de la allBands";
$ benzi = mysql_query ($ query) sau mori ( "Eroare de configurare 2222b");
$ userRows = mysql_num_rows ($ benzi);

/ / Acum, haideţi să se conecteze la smf db
$ host = "smfhost"; / / nume de gazdă
$ username = "smfuser; / / Mysql username
$ parola mea = "smfpassword"; / / mysql parola
$ db_name = "smfdatabase"; / / numele bazei de date

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ parola mea") sau a muri ( "nu se poate conecta la server");
("cannot select DB"); mysql_select_db ( "$ db_name") sau a muri ( "nu se poate selecta DB");

/ / $ vaild_chars va fi permis serie de caractere pentru nume de utilizator. Am decis să permită doar litere şi cifre. Există şi alte caractere care pot fi folosite ca nu ar cauza o problemă, dar stilul de motive am decis sa merg cu doar litere şi cifre
$ valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ = valid_chars exploda ( "", $ valid_chars);

/ / Acum trebuie să ne bucla prin fiecare bandă

){ for ($ i = 0; $ i <$ userRows; $ i + +) (

($bands)){ if ($ row = mysql_fetch_assoc ($ benzi)) (

/ / Extras de banda de informaţii
extract ($ row);
/ / Creaţi o parolă pentru trupa
$ realPassword = createRandomPassword ();
/ / I alege să ecou în bandname şi o parolă, ca parte a mea, aşa că am depanare şi posibilitatea de a vedea cum funcţionează funcţie
echo ( "<br/> bandName $ - $ realPassword");
$ newBand = "";
/ / Pentru fiecare literă din numele trupei vom uita, pentru a vedea dacă acesta se potriveşte cu un caracter corect de la $ valid_chars. Aceasta nu vom scăpa de ea şi trunchia numele trupei
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ bandName); $ j + +) (

($band[$j])); $ temp = str_replace ($ valid_chars, "X", strtolower ($ trupa [$ j]));
dacă ($ temp == "X")

$ newBand = $ newBand. $ trupa [$ j];

)
/ / I ecou noul nume pentru acelaşi motiv pentru care am echo vechiul nume şi o parolă
echo ( "- $ newBand");
/ / Avem noi Band numele .... acum să începem buliding info de care avem nevoie pentru a introduce în db ...
$ memberName = $ newBand;
realname $ = $ newBand; / / am setat nume real şi membru acelaşi nume. Trupele pot schimba în cazul în care doriţi
$ emailAddress = $ bandEmail;
$ websiteUrl = $ bandWebsite; / / De când sunt în benzile de site-urile ar putea, de asemenea ele intră
$ websiteTitle = $ newBand;
$ is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ password = sha1 (strtolower ($ memberName). $ realPassword); / / Parola trebuie să fie criptate

/ / Asiguraţi-vă că lor isn'ta membru cu acelaşi nume în baza de date a SMF. Noi nu vrem să accidental intră cineva de două ori pe
$ query = "select * de la smf_members UNDE memberName = '$ memberName'";
("Config Error 2222343242b"); $ rezultat = mysql_query ($ query) sau mori ( "Eroare de configurare 2222343242b");
$ nrows = mysql_num_rows ($ rezultat);

/ / Cazul în care un membru nume este găsit nu fac nimic
dacă ($ nrows> 0) ()

else (

/ / Dacă utilizatorul nu este semnat deja pentru forum-uri, face acest lucru şi de a trimite un e-mail ....
$ query = "INSERT INTO smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) VALUES ( '$ memberName', '$ realname', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP" , '$ parola', '$ websiteUrl', '$ websiteTitle ")";

("Config Error 2232 "); $ rezultat = mysql_query ($ query) sau mori ( "Eroare de configurare 2232");

/ / Acum, avem nevoie pentru a trimite un e-mail de banda
$ a = $ emailAddress;
$ subiect = "forum numele de utilizator şi parola";

/ / De la
$ header = "de la: Eu <me@mysite.com>";

/ / Mesajul dvs.
$ mesaj .= "dvs. de conectare şi parola sunt enumerate mai jos. Aveţi posibilitatea de a modifica, fie in orice moment. Dacă nu doriţi să participe la forumurile noastre, asta-i nici o problema. Doar nu intraţi în ea şi va fi ca nimic nu s-a întâmplat . \ r \ n ";
$ mesaj .= "Nume de utilizator: $ memberName Parola: $ realPassword \ r \ n";

/ / Trimite un email
$ sentmail = mail ($ a, $ subiect, $ mesaj, $ antet);
dacă ($ sentmail)

echo ( "- Da!");
/ / Aceasta este ultima parte a noastră ecou. The "-Da!" vor fi tipărite numai dacă este trimis un e-mail. Deci, o linie de imprimat va arate ceva în genul:
/ / Adam Strife - 4s6vsxag - AdamStrife - Da!

)

)
)

Cum se face manual Introduceţi un utilizator intr-o SMF Forum Folosind PHP

Clasat in SMF (Simple Machine Forum), php de ShortLikeAFox pe 28 iulie 2008

Acest exemplu este specific pentru SMF 1.1.5. Nu pot garanta va funcţiona cu orice altă versiune.

Deci, va rula simplă Machine Software Forum şi doriţi pentru a introduce manual un utilizator? Nici o problemă. Ştiu că această problemă pare foarte specifice, dar ideile explicat aici pot fi adaptate de la alte tipuri de forumuri şi alte pachete de software de baze de date condus, cum ar fi Wordpress. Înainte de a ajunge în exact cum se face acest lucru, să aruncăm o privire la cât de simplă Machine Forums monitorizează de utilizatori. În baza de date a SMF există un tabel numit smf_members. În structura smf_members arata astfel:

Câmp Tip Null

Cheie Implicit Extra
ID_MEMBER mediumint (8) nesemnate NU PRI NULL auto_increment
memberName varchar (80) NU MUL
dateRegistered int (10) nesemnate NU MUL 0
posturi mediumint (8) nesemnate NU MUL 0
ID_GROUP smallint (5) nesemnate NU MUL 0
lngfile tinytext NU MUL
lastLogin int (10) nesemnate NU MUL 0
realname tinytext NU
instantMessages smallint (5) NU 0
unreadMessages smallint (5) NU 0
buddy_list text NU
pm_ignore_list text NU
messageLabels text NU
passwd varchar (64) NU
emailAddress tinytext NU
personalText tinytext NU
gen tinyint (4) nesemnate NU 0
Data naşterii dată NU MUL 0001-01-01
websiteTitle tinytext NU
websiteUrl tinytext NU
locaţie tinytext NU
ICQ tinytext NU
AIM varchar (16) NU
YIM varchar (32) NU
MSN tinytext NU
hideEmail tinyint (4) NU 0
showOnline tinyint (4) NU 1
timeFormat varchar (80) NU
semnătura text NU
timeOffset pluti NU 0
avatar tinytext NU
pm_email_notify tinyint (4) NU 0
karmaBad smallint (5) nesemnate NU 0
karmaGood smallint (5) nesemnate NU 0
usertitle tinytext NU
notifyAnnouncements tinyint (4) NU 1
notifyOnce tinyint (4) NU 1
notifySendBody tinyint (4) NU 0
notifyTypes tinyint (4) NU 2
memberIP tinytext NU
memberIP2 tinytext NU
secretQuestion tinytext NU
secretAnswer varchar (64) NU
ID_THEME tinyint (4) nesemnate NU 0
is_activated tinyint (3) nesemnate NU 1
validation_code varchar (10) NU
ID_MSG_LAST_VISIT int (10) nesemnate NU 0
additionalGroups tinytext NU
smileySet varchar (48) NU
ID_POST_GROUP smallint (5) nesemnate NU MUL 0
totalTimeLoggedIn int (10) nesemnate NU 0
passwordSalt varchar (5) NU

Domenii trebuie să acorde atenţie:

  • memberName - Auto Explanitory.
  • dateRegistered - nu este necesară, dar dacă nu sunt completate la data înregistrate afişează ca 31 decembrie 1969. Data este salvată ca o epoca de timp. Nu ştiu cum să calculeze timp in capul tau? Nici o problemă. Eu folosesc libera generator găsit aici.
  • realname - ar trebui introduse. Când nu sunt sigur am repeta memberName aici.
  • emailAddress - Auto Explanitory.
  • is_activated - Trebuie să fie setat la 1 din moment ce noi suntem manual activarea unui membru.
  • ID_POST_GROUP - Eu nu va mint. Nu sunt sigur ce este, dar este întotdeauna pare să se fi stabilit la 4. Deci .... Intotdeauna mi-am stabilit-o la 4. Nu cel mai bun mod de program, dar ce poti face?
  • passwd - Parola pe care doriţi să le dau de utilizator nou. Este imposibil să se seama cum de a intra fără a uita la SMF documentaţie. Buna cod pentru a cripta un SMF parolă pentru baza de date arata ca acest lucru:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ parola)

În cele de mai sus linie de cod, $ parola este al utilizatorului real parola.

Cum se face:

/ / În primul rând, conectarea la baza de date a SMF

$ host = "hostname"; / / nume de gazdă
$ username = "nume_utilizator"; / / Mysql username
$ parola mea = "parola"; / / mysql parola
$ db_name = "nume_utilizator"; / / numele bazei de date

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ parola mea") sau a muri ( "nu se poate conecta la server");
("cannot select DB"); mysql_select_db ( "$ db_name") sau a muri ( "nu se poate selecta DB");

$ memberName = "ironMan";
realname $ = "Tony Stark";
$ emailAddress = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ password = "Tony1234";

($memberName).$password); $ password = sha1 (strtolower ($ memberName). $ parola);

$ dateRegistered = 1216951200; / / 7.25.2008 2 AM

$ query = "INSERT INTO smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ memberName', '$ realname', '$ emailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ parola ',' $ dateRegistered ")";
("SMF Error 101.234 "); $ rezultat = mysql_query ($ query) sau mori ( "SMF Eroare 101.234");

Asta e tot ce e de el!

Cum sa faci Thumbnail Images Using PHP

Postat în funcţii, php de ShortLikeAFox pe 22 iulie 2008

Deci, doriţi să creaţi o miniatură de la o anumită imagine ... PHP face această sarcină uşoară. Am scris primul funcţia de mai jos pentru a se ocupa de imagini încărcate de utilizatori de la un site sa te ajut administra. Uploaded imagini de la acest site pot fi formate JPEG, pngs, sau GIFs, aşa că a trebuit să scrie o funcţie pentru a se ocupa de toate cele trei. Acest cod este bazată iniţial pe o funcţie de găsit la webcheatsheet.com

Cum se face:

funcţiei createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ / Analiza calea pentru extinderea

$ info = pathinfo ($ pathToImages. $ fname);
/ / Continua numai dacă aceasta este o imagine JPEG
($info['extension']) == ‘jpeg’) ) dacă ((strtolower ($ info [ 'extindere']) == "jpg") | | (strtolower ($ info [ 'extindere']) == 'jpeg'))
(

/ / De încărcare a imaginii şi a lua dimensiunea imaginii
$ img = imagecreatefromjpeg ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcula dimensiunea thumbnail
$ new_width = $ thumbWidth;
$ = new_height podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Temporară a crea o nouă imagine
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copie şi redimensiona imaginea vechi în noua imagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ width, $ height);

/ / Salva miniatură într-un fişier
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

if (strtolower ($ info [ 'extindere']) == 'gif')
(

/ / De încărcare a imaginii şi a lua dimensiunea imaginii
$ img = imagecreatefromgif ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcula dimensiunea thumbnail
$ new_width = $ thumbWidth;
$ = new_height podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Temporară a crea o nouă imagine
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copie şi redimensiona imaginea vechi în noua imagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ width, $ height);

/ / Salva miniatură într-un fişier
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

if (strtolower ($ info [ 'extindere']) == "png")
(

/ / De încărcare a imaginii şi a lua dimensiunea imaginii
$ img = imagecreatefrompng ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcula dimensiunea thumbnail
$ new_width = $ thumbWidth;
$ = new_height podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Temporară a crea o nouă imagine
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copie şi redimensiona imaginea vechi în noua imagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ width, $ height);

/ / Salva miniatură într-un fişier
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

Cum funcţionează

Funcţia createThumbs durează patru argumente.

  • $ pathToImages -> calea către folderul fişierului imagine este inch S-ar putea să arate ceva în genul: / home / content / numele de utilizator / html / lista / imagini /
  • $ fname -> Numele fisierului: pic1.gif, johnny.jpg, etc ...
  • $ pathToThumbs -> calea către folderul dorit de imagine în miniatură a fi inch nu vrei ca aceasta să fie aceeaşi cale ca $ pathToImages, de imagine în miniatură, pentru că va avea acelaşi nume ca şi originalul imagine.
  • $ thumbWidth -> Lăţimea care doriţi cu pictograme pentru a fi, în pixeli.

O notă importantă care ar trebui să fac eu aici este faptul că această operaţiune nu are nimic de la locul lor, altele decât cele de fişier prelungire verifica, pentru a vă asigura că fişierele de imagine conţine nimic rău. Deoarece fişierele createThumbs () cu lucrări au fost deja încărcat se presupune că dosarele au fost examinate în mod corespunzător.

Primul lucru createThumbs () nu este apel pathinfo (). pathinfo () pauze de piese de o cale într-o matrice. Acest lucru este util pentru noi, pentru că avem nevoie de fişier de extensie pentru a crea în mod corespunzător cu pictograme. Înainte createThumbs () controale pentru a vedea dacă avem de-a face cu un jpeg. În cazul în care originalul este un fişier JPEG createThumbs Creeaza o noua imagine, pe baza imaginii originale cu imagecreatefromjpeg (). Următorul pas este de a obtine lăţimea şi înălţimea de această imagine (imagesx (), imagesy ()). Utilizarea $ thumbWidth şi a raportului de original lăţimea şi înălţimea createThumbs () stabileşte noi lăţimea şi înălţimea de pictograme. Prin aceste noi raporturi de createThumbs () creează un "gol" de imagini, care va fi aceeaşi lăţimea şi înălţimea de pictograme cu imagecreatetruecolor (). Imagecopyresized () este folosit pentru a redimensiona imaginea şi salvaţi-o în "gol" doar creat. imagecopyresized () ar putea parea ca este nevoie de o mulţime de parametri, dar, dacă aruncăm o privire la documentaţia este adevărat că nu este complicat. Acum, că există o miniatură ca un adevarat culoare imagine toate createThumbs trebuie să faceţi este să se transforme într-un fişier JPEG. Pentru a face acest lucru imagejpeg () se numeşte.

Asta e modul în care funcţia de lucrări pentru JPEG. Există diferenţe minime pentru. Pngs şi. GIFs.

Cum de a scrie cod specific Browser cu PHP

Posted in PHP de ShortLikeAFox pe 21 iulie, 2008

Deci vrei să scrii cod, care apare doar pe anumite browsere ... Există o serie de motive pentru a dori să facă acest lucru. Prima dată când am nevoie de personal pentru a face acest lucru a avut loc, atunci când am încercat să-încorpora un mp3 de pe o anumită pagină. Pentru anumite motive nu am putut scrie codul, astfel încât mp3-ar juca pe browser-am test pe (IE, Firefox, şi Opera), şi validaţi în acelaşi timp. Dacă îmi amintesc bine, a fost Internet Explorer care a fost cauza problemei. Soluţia am venit cu a fost de a folosi un pic de PHP pentru a afla de la care utilizatorul a fost folosind IE, şi apoi de a încorpora în mp3 non-cod valabil în cazul în care a fost cazul.

Această soluţie a condus la mp3 întotdeauna joacă în mod corect şi întotdeauna în pagina de validare, deoarece W3C validator nu identifică în sine ca IE. Acest lucru ar putea să nu fie cele mai etice cale de a ajunge la W3C conformitate, dar funcţionează.

Altă dată mi-l amintesc a avea nevoie de browser pentru a scrie cod specific este, atunci când am fost cu o problema cu IE 6 nu afişarea mea. Png imagini corect. I googled jur şi a găsit o pereche de soluţii la această problemă, dar atât de joc le-a ajuns până în ansamblu strat de locaţii de pe paginile mele. În loc de depanare care problema, m-am dus cu soluţie rapidă şi a decis să se afişeze. GIFs atunci când utilizatorul a avut IE 6. În cazul în care utilizatorul a avut un alt browser care au avut. Png probleme m-am gândit că a fost prea rău pentru el.

Cum se face:

Mai întâi, trebuie să scrieţi o mica linie de cod pentru a seama ce a browser-ul dvs. de utilizator. Iată cum să faci asta cu PHP:

  • 'HTTP_USER_AGENT' ]; $ visitorsOS = $ _SERVER [ 'HTTP_USER_AGENT'];

Iată trei exemple de ce $ visitorsOS poate arata ca

  • Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;. NET CLR 1.0.3705;. NET
  • Opera/9.51 (Windows NT 5.1; U; pl)
  • Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: 1.9) Gecko/2008052906 Firefox

Primul utilizator a Internet Explorer 6, cea de-a doua Opera 9.51, iar cea de-a treia Firefox.

Acum, că ştim mai multe informaţii decât noi cu adevarat nevoie despre vizitatorilor computer care avem nevoie pentru a pune aceste informaţii la o bună utilizare. Spune pe care doriţi să scrie cod care vor apărea doar în cazul în care utilizatorul se execută orice versiune de Internet Explorer. În acest caz, ar trebui să facă acest lucru:

(’MSIE’,$visitorsOS)){ if (eregi ( 'MSIE', $ visitorsOS)) (

Cod care vor apărea doar dacă utilizatorul are IE

)

else (

Cod care va apărea în toate celelalte cazuri,

)

Eu folosesc eregi, un caz insensibil expresie regulată meci în loc de ereg, un caz sensibil expresie regulată meci. Nu-mi amintesc dacă am face acest lucru de paranoia, sau, dacă am găsit un caz în care Internet Explorer identificate ca MSIE sine. În ambele cazuri eregi nu va doare nimic, deci este ceea ce am de utilizare. Care doresc sa scrie codul pentru anumite versiuni de IE ar necesita doar o mică schimbare. în loc de ... (eregi ( 'MSIE "...) Mi-ar folosi ceva de genul (eregi (' MSIE 6.0" ...), dacă am vrut doar codul care a apărut pentru MSIE 6.0.