Kako prepoznati Gdje Vaši posjetitelji su geografski Koristeći PHP

Objavljeno u PEAR , php kod ShortLikeAFox dana 13. rujna 2008

Ako imate web stranicu i želite reći gdje Vaši korisnici dolaze iz zemljopisno PHP i kruške se to realizira. Za uključivanje gostiju IP u fizičkoj lokaciji prva stvar koju ćete morati učiniti je da provjerite da li ste modula PEAR Net_Geo. Ako nemate modula PEAR Net_Geo, ti si idući u morati koristiti PEAR Package Manager steći ga.

Ako ne mislite da imate pristup PEAR zbog svoje hosting paketa, provjeriti ovaj objašnjenje o tome kako instalirati PEAR na račun koji ne dozvoljava pristup po defaultu. Pisano je s GoDaddy dijeljenih računa na umu, ali trebaju raditi za većinu hosting pakete koji ne dolaze s PEAR postaviti.

Nakon što ste Net_Geo paketa instaliranog, to traje samo nekoliko linija koda kako bi stekli geografski podaci:

<? Php

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

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitude: <? Php echo ($ geopodataka ['LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Longitude: <? Php echo ($ geopodataka ['DUGI']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Država: <? Php echo ($ geopodataka ['zemlja']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Država: <? Php echo ($ geopodataka ['Status']);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Grad: <? Php echo ($ geopodataka ['grad']);?> <br/>

Šifra na radu:

IP: 72.14.192.65

Latitude:

Longitude:

Zemlja:

Država:

Mjesto:

Kako uključiti Funkcioniranje PHP kod u vaš WordPress Postovi

Posted in WordPress , php kod ShortLikeAFox na 17 kolovoz, 2008

Dakle želite biti u mogućnosti koristiti PHP u tvoj WordPress blog pošta i Stranice. To nije problem. Samo pomoću <? Php ... ... ..?> Ide to izraditi WordPress ljutiti ako ne instalirate plugin prvi. Postoji nekoliko dodataka vani koji tvrde da nude ovu sposobnost, no onaj koji sam našla djela najbolje je Exec-PHP . Da biste počeli koristiti PHP kod, slijedite ove korake:

  1. Preuzmite Exec-PHP
  2. Uvesti ga kao što bi bilo koji dodatak (Ovaj link gore i obavijesna datoteka će vas provesti kroz ovaj)
  3. Ako trenutno koristite ga, morate isključiti WYSIWYG editor. Da biste to učinili, idite na Korisnici -> Vaš Profil i deaktivirati korištenje vizualni editor našto pisanje kućicu
  4. Počnite pisati php koda kao što ga i inače koristite: <? Php .... Kod ide ovdje?>

To je sve što za njega!

Kako stvoriti i koristiti Dinamički Imenovan varijabli s PHP

Posted in PHP by ShortLikeAFox na 17 kolovoz, 2008

Dakle želite koristiti dinamičku varijablu imena u kodu. Nema problema. Recimo da imate 100 varijabli zove dog0, dog1, dog2, ...., Dog98, dog99. Zašto bi želite koristiti 100 varijable kao što je ovaj umjesto polja je iza mene, ali to nije važno za ovaj primjer. Da biste postavili tih varijabli u petlji brzo možete koristiti slijedeće:

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

; VariableName $ = "$ i pas";
$ $ $ I = variableName; / / postavlja dog1 $ na 1, $ dog2 do 2, $ pas 34 - 34, itd ....

)

Sada recimo da ste htjeli za pristup svim od tih varijabli. Možete koristiti slijedeće:

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

; VariableName $ = "$ i pas";
echo ("<br/>");
echo ("$ variableName:");
echo ($ $ variableName);

)

Ova petlja ispisuje:

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

itd ... sve do
dog99: 99

Kako intergrate ISBN Pristup na svojim web stranicama Koristeći PHP

Posted in PHP by ShortLikeAFox na 12 kolovoz, 2008

ISBN ili Međunarodni standardni knjižni Brojevi su korisne oznake koje se mogu koristiti da biste pronašli informacije o pojedinim knjigama. Ako želite integrirati ISBN traženje u vašem web aplikacija PHP ga čini izvodljiv.

Korak Jedan: ISBNdb.com je stvorio API koji omogućava korisnicima iz cijeloga svijeta za pristup svojim bazama podataka i ISBN zapisa. Ovdje je opis vlastite API:

ISBNdb.com 's udaljenim pristupom sučelje za programiranje aplikacija (API) je dizajniran da omogući druge web stranice i samostalne aplikacije koriste velike prikupljanja podataka koje su prikupili ISBNdb.com od 2003. Kao što je ovog pisanja, u srpnju 2005, podaci obuhvaćaju gotovo 1,8 milijuna knjiga; gotovo 3 milijuna miliona biblioteku dokumenata; blizu milijun predmeta, stotine tisuća autora i izdavača zapisi raščlaniti iz biblioteke podataka, više od 10 milijuna zapisa o stvarnim i povijesne cijene.

Kako biste koristili ovu API morate se najprije registrirati. Prijava traje doslovno sekunda. Nakon toga, morate postaviti ključ. Tipke omogućuju vam izravno pristupiti ISBN baze iz vlastitog koda. ISBNdb.com web stranice čini postavljanje tipke lako.

Drugi korak: Sada ste početi pisati kod za interakciju s bazom podataka. Zahtjev za traženje ISBN će izgledati otprilike ovako:

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

Ti bi umetnite ključ pristupa u mjestu XXXXXX. $ IsbnQuery bi ISBN broj te zanima $ isbnData je XML datoteka. Za pristup ove podatke trebate pustiti tvoj broj znati što je to bavi. Nešto kao što je ovaj htijenje funkcionirati:

) ; $ @ Simplexml_load_file xmlData = ($ isbnData) or die ("Ne postoji datoteka učita");

Sada možete pristupiti pojedinih varijabli s pozivima otprilike ovako:

]->Title ; $ Naslov = $ xmData-> Booklist [0] -> BookData [0] -> naslov;

Ovdje je kompletan rad primjer:

<? Php

$ Searchquery = "9780684801223"; / / Ernest Hemingway za ISBN je Starac i more
$ IsbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ Searchquery"; / / Ne zaboravite zamijeniti XXXXXX sa svoj vlastiti pristup ključ
) ; $ @ Simplexml_load_file xmlData = ($ isbnData) or die ("Ne postoji datoteka učita");
]->Title ; $ Naslov = $ xmlData-> Booklist [0] -> BookData [0] -> naslov;
]->AuthorsText ; $ = $ Autori xmlData-> Booklist [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ Publisher = $ xmlData-> Booklist [0] -> BookData [0] -> PublisherText;

); echo ("$ naslov <br/>");
); echo ("$ <br/> autora");
); echo ("$ izdavača <br/>");

/ / Ovaj primjer ispisuje:
/ / Starac i more
/ / Ernest Hemingway
/ / New York: Scribner meki Fiction, 1995.

?>

Kako se ručno Umetanje grupe korisnika na SMF forum Koristeći PHP

Objavljeno u SMF (Simple Machine Forum) , PHP by ShortLikeAFox dana 30. srpnja 2008

Ovaj tutorial podrazumijeva da ste upoznati sa mojim post: Kako to Priručnik Umetanje korisnika na SMF forum Koristeći PHP .

Nedavno sam suočena s izazovom ili tako kreće 800 bendova iz baze podataka u SMF forum. Sam se suočio nekoliko problema prilikom potez koji nisam pokrivaju u prvi post:

  1. Imena sastava nije bilo zajamčeno da će sigurno za znak znak premjestiti u SMF baze podataka. Dakle, neke vrste mijenjanja imena funkcije morali biti zaposleni.
  2. Bendovi nemaju lozinke. Tako neki tip lozinku generacije treba biti zaposlen.

Skaline JA je otišao da se registrirate o svim bendovima na forumu otišao malo ovako:

Otvaranje baze Band

za svaki (Band) (

Kreiraj lozinka

Preimenuj Band sa "sigurnom" ugled

Grab i generirati podatke potrebne za umetanje korisnika

Umetnite Band u smf_members

Pošalji Band-mail s lozinkom

)

Informacije sam imao na raspolaganju od benda bazu podataka koja je korisna uključeno: bandName, bandEmail i bandWebsite

Ovdje je funkcija stvaranje lozinku sam koristio (blatently preuzeta iz totallyphp.co.uk ):

Funkcija createRandomPassword () (

$ Znakova = "abcdefghijkmnopqrstuvwxyz023456789";

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

$ I = 0;

$ Pass = ";



while ($ i <= 7) (

33; $ Num = rand ()% 33;

$ Tmp = substr ($ znakova, $ num, 1);

$ Pass = $ pass. $ Tmp;

$ I + +;

)

povratak $ pass;

)

Lozinka stvorio ovdje je relativno slab, ali to je bio dovoljno dobar za moje potrebe. Svaka funkcija generacije lozinka će raditi ovdje. Izabrao sam ovaj neki, jer bi se lako za članove sjetiti da li su izabrali da ne mijenjati.

Kako to učiniti:

/ / Prvo spajanje na bazu podataka bend
$ Username = "bandUsername";
$ Host = "bandHost";
$ Mojalozinka = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ host", "$ ime", "$ mojalozinka") or die ("ne mogu spojiti na poslužitelj");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("ne mogu odabrati DB");

/ / Sada zgrabite sve bendova iz baze podataka
$ Query = "SELECT * FROM allBands";
$ Bendova = mysql_query ($ upit) or die ("Greąka u konfiguraciji 2222b");
$ UserRows = mysql_num_rows ($ bendova);

/ / Sada omogućava spajanje na SMF db
$ Host = "smfhost"; / / Host name
$ Username = "smfuser; / / mysql username
$ Mojalozinka = "smfpassword"; / / mysql lozinka
$ Db_name = "smfdatabase"; / / Naziv baze

("cannot connect to server"); mysql_connect ("$ host", "$ ime", "$ mojalozinka") or die ("ne mogu spojiti na poslužitelj");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("ne mogu odabrati DB");

/ / $ Vaild_chars će biti dozvoljeno niz znakova za korisničkih imena. JA odlučio je da jedini dopustiti slova i brojki. Postoje i drugi znakovi koji se mogu koristiti kako ne bi uzrokovalo problem, ali za stil razloga sam odlučio otići sa samo slova i brojke
$ Valid_chars = "ABCDEFGHIJKLMNOPQRSTU VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = explode ("", $ valid_chars);

/ / Sada trebamo petlju kroz svaki bend

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

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

/ / Ekstrakt bend informacije
ekstrakt ($ row);
/ / Kreiraj lozinka za bend
$ RealPassword createRandomPassword = ();
/ / Sam se odlučio za jeke bandname i lozinku kao dio moje otkrivanje pogrešaka i tako da mogu vidjeti funkciju kao što to radi
echo ("<br/> bandName $ - $ realPassword");
$ NewBand = "";
/ / Za svako slovo u ime benda ćemo gledati da vidi da li odgovara važećim znakom od $ valid_chars. To ne ćemo da biste dobili osloboditi od njega i izrežite ime benda
($bandName); $j ++ ){ for ($ i = 0; $ j <strlen ($ bandName); $ i + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "X", strtolower ($ bend [$ j]));
if ($ temp == "X")

$ = $ NewBand newBand. Benda $ [$ j];

)
/ / Echo sam novi naziv istog razloga sam jeka staro ime i lozinku
echo ("- $ newBand");
/ / Mi smo novo ime benda .... Sada ćemo započeti buliding info trebamo umetnuti u db ...
$ = $ MemberName newBand;
$ = $ Realname newBand; / / postaviti pravo ime i korisničko ime isto. Bendovi mogu ga promijeniti ako žele
$ = $ EmailAddress bandEmail;
$ = $ WebsiteUrl bandWebsite; / / Budući da sam bendova 'web stranice kao što bi i njima ući
$ = $ WebsiteTitle newBand;
Is_activated $ = 1;
ID_POST_GROUP $ = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = sha1 (strtolower ($ memberName). RealPassword $); / / Zaporka mora biti šifriran

/ / Provjerite da njihov član nije sa istim imenom u SMF baze podataka. Mi ne želimo ulaziti tko slučajno dva puta
$ Query = "SELECT * FROM WHERE smf_members memberName = '$ memberName'";
("Config Error 2222343242b"); $ Rezultat = mysql_query ($ upit) or die ("Greąka u konfiguraciji 2222343242b");
$ Nrows = mysql_num_rows ($ rezultat);

/ / Ako korisničko ime nađe ništa ne
if ($ nrows> 0) ()

else (

/ / Ako korisnik nije već prijavio za forum, učinite to i pošaljite 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' , '$ password', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ Rezultat = mysql_query ($ upit) or die ("Greąka u konfiguraciji 2232");

/ / Sada nam je potrebno poslati e-mail bend
$ To = $ emailAddress;
$ Subject = "Vaša forumu korisničko ime i lozinku";

/ / Od
$ Header = "From: Me <me@mysite.com>";

/ / Poruka
$ Poruka .= "Vaša prijava i lozinka su navedene u nastavku. Možete promijeniti bilo u bilo koje vrijeme. Ako ne želite da sudjeluju u našim forumima, to nije problem. Ali nikada se prijavite i da će biti kao nikada ništa dogodilo. \ r \ n ";
$ Poruka .= "Korisničko ime: Lozinka memberName $: $ realPassword \ r \ n";

/ / Slanje e-pošte
$ = Poslanapošta mail ($ to, $ subject, $ message, $ header);
if ($ poslanapošta)

echo ("- DA!");
/ / Ovo je posljednji dio naše jeka. "-Da!" samo će se ispisati ako je pošta je poslana. Dakle cijelu liniju ispisa će izgledati otprilike ovako:
/ / Adam Strife - 4s6vsxag - AdamStrife - DA!

)

)
)

Kako se ručno Umetanje korisnika na SMF forum Koristeći PHP

Objavljeno u SMF (Simple Machine Forum) , PHP by ShortLikeAFox dana 28. srpnja 2008

Taj konkretni primjer je za SMF 1.1.5. Ja ne mogu garantirati da će raditi s bilo kojom drugom verzijom.

Tako da mali Simple Machine Forum software i želite ručno unijeti korisnik? Nema problema. JA znati ovaj problem čini vrlo specifičnim, ali ideja je objašnjeno ovdje se može prilagoditi druge vrste foruma i drugih baza podataka driven programski paketi kao što su WordPress. Prije nego što smo dobili u točno kako to učiniti, dozvoljava 'uzeti pogledati kako Simple Machine Forums vodi evidenciju o korisnicima. U SMF baze podataka nalazi se stol pod nazivom smf_members. Smf_members struktura izgleda ovako:

Polje Tip Nula

Ključ Default Ekstra
ID_MEMBER mediumint (8) nepotpisani NO PRI NULL auto_increment
memberName varchar (80) NO MUL
dateRegistered int (10) nepotpisani NO MUL 0
postove mediumint (8) nepotpisani NO MUL 0
ID_GROUP smallint (5) nepotpisani NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) nepotpisani NO MUL 0
realname tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list tekst NO
pm_ignore_list tekst NO
messageLabels tekst NO
passwd varchar (64) NO
emailAddress tinytext NO
personalText tinytext NO
rod tinyint (4) nepotpisani NO 0
rođenja datum NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
lokacija tinytext NO
ICQ tinytext NO
AIM varchar (16) NO
YIM varchar (32) NO
MSN tinytext NO
hideEmail tinyint (4) NO 0
showOnline tinyint (4) NO 1
timeFormat varchar (80) NO
potpis tekst NO
timeOffset plovak NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) nepotpisani NO 0
karmaGood smallint (5) nepotpisani NO 0
usertitle tinytext NO
notifyAnnouncements tinyint (4) NO 1
notifyOnce tinyint (4) NO 1
notifySendBody tinyint (4) NO 0
notifyTypes tinyint (4) NO 2
memberIP tinytext NO
memberIP2 tinytext NO
secretQuestion tinytext NO
secretAnswer varchar (64) NO
ID_THEME tinyint (4) nepotpisani NO 0
is_activated tinyint (3) nepotpisani NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) nepotpisani NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) nepotpisani NO MUL 0
totalTimeLoggedIn int (10) nepotpisani NO 0
passwordSalt varchar (5) NO

Polja trebamo obratiti pažnju na:

  • memberName - Self Explanitory.
  • dateRegistered - nije potrebno, ali ako ne ispuniti datum registrirani prikazuje kao 31 prosinca 1969. Datum je spremljen kao epohu timestamp. Ne znam kako to izračunati vremenskih oznaka u glavi? Nema problema. Koristim besplatni generator naći ovdje .
  • realname - Treba biti umetnuta. Kad nisam siguran da sam samo ponoviti memberName ovdje.
  • emailAddress - Self Explanitory.
  • is_activated - Mora biti postavljena na 1 jer mi se aktivira ručno član.
  • ID_POST_GROUP - Neću lagati. Im 'ne siguran što je to, ali to uvijek čini se da postavite na 4. Dakle .... Uvijek sam ga postavite na 4. Nije najbolji način da se plan, ali ono što mogu učiniti?
  • passwd - password da želite dati novi korisnik. Nemoguće je shvatiti kako to ulaziti bez gledanja SMF dokumentacije. Ispravan kod za šifriranje lozinka za SMF baze podataka izgleda ovako:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Password)

U iznad redak koda, $ lozinka je korisnik 'stvarni lozinka.

Kako to učiniti:

/ / Prvo, spojite se na SMF baze podataka

$ Host = "hostname"; / / Host name
$ Username = "username"; / / mysql username
$ Mojalozinka = "password"; / / mysql lozinka
$ Db_name = "username", / / Naziv baze

("cannot connect to server"); mysql_connect ("$ host", "$ ime", "$ mojalozinka") or die ("ne mogu spojiti na poslužitelj");
("cannot select DB"); mysql_select_db ("$ db_name") or die ("ne mogu odabrati 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). $ Password);

$ DateRegistered = 1216951200; / / 2008/07/25 02:00

$ Query = "INSERT INTO smf_members (memberName, realname, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ('$ memberName', '$ realname', '$ emailAddress', '$ is_activated', '$ ID_POST_GROUP', ' $ lozinka ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Rezultat = mysql_query ($ upit) or die ("Greška 101,234 SMF");

To je sve što za njega!

Kako napraviti sličica Koristeći PHP

Posted in funkcija , php kod ShortLikeAFox dana 22. srpnja 2008

Dakle, želite stvoriti umanjena sličica iz pojedinog slike ... PHP čini ovaj zadatak jednostavno. Sam prvi put napisao funkciju u nastavku da se bavi slikama ustupio korisnika na stranicama sam pomoći upravljati. Upload slike na ovoj stranici mogu biti JPEG, PNGs, ili GIF, pa sam morao napisati funkciju da se bave sve tri. Ovaj kod je izvorno temelji isključivanje funkcije naći na webcheatsheet.com

Kako to učiniti:

Funkcija createThumbs ($ pathToImages, fname $, $ pathToThumbs, $ thumbWidth)
(

/ / Parsiranje put za produljenje

$ Info = pathinfo ($ pathToImages. Fname $);
/ / Nastaviti samo ako je to JPEG slika
($info['extension']) == 'jpeg') ) if ((strtolower ($ info ['nastavak']) == 'jpg') | | (strtolower ($ info ['nastavak']) == 'jpeg'))
(

/ / Učitavanje slika i dobiti veličina slike
$ Img = imagecreatefromjpeg ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Izračunavanje veličine thumbnail
$ = $ New_width thumbWidth;
$ New_height = floor ($ visina * ($ thumbWidth / $ width));

/ / Stvaranje nove privremene slike
$ Tmp_img imagecreatetruecolor = ($ new_width, new_height $);

/ / Kopirati i mijenjati veličinu slike starih u nove slike
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ širina, visina $);

/ / Spremanje u datoteku sa sličicama
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

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

/ / Učitavanje slika i dobiti veličina slike
$ Img = imagecreatefromgif ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Izračunavanje veličine thumbnail
$ = $ New_width thumbWidth;
$ New_height = floor ($ visina * ($ thumbWidth / $ width));

/ / Stvaranje nove privremene slike
$ Tmp_img imagecreatetruecolor = ($ new_width, new_height $);

/ / Kopirati i mijenjati veličinu slike starih u nove slike
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ širina, visina $);

/ / Spremanje u datoteku sa sličicama
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

if (strtolower ($ info ['nastavak']) == 'png')
(

/ / Učitavanje slika i dobiti veličina slike
$ Img = imagecreatefrompng ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Izračunavanje veličine thumbnail
$ = $ New_width thumbWidth;
$ New_height = floor ($ visina * ($ thumbWidth / $ width));

/ / Stvaranje nove privremene slike
$ Tmp_img imagecreatetruecolor = ($ new_width, new_height $);

/ / Kopirati i mijenjati veličinu slike starih u nove slike
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ širina, visina $);

/ / Spremanje u datoteku sa sličicama
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

Kako to radi

Funkcija createThumbs traje četiri argumenta.

  • $ PathToImages -> Put do mape slika fascikl je u. To može izgledati ovako: / home / content / username / html / popis / dodano /
  • $ Fname -> filename: pic1.gif, johnny.jpg, itd. ...
  • $ PathToThumbs -> put do mape u koju želite sličicu da se u. Ne želite da se to isti put kao $ pathToImages, jer sličicu će imati isti naziv kao izvornu sliku.
  • $ ThumbWidth -> širina koju želite sličice da se u pikselima.

Važno napomenuti da sam trebao napraviti je u tome da je ova funkcija ništa u mjestu, osim ekstenzija datoteke ček, da biste bili sigurni da je slika kartoteka sadržati ništa zlonamjerni. Budući da datoteke createThumbs () radi s već bio uploaded se pretpostavlja da datoteke ispravno svaku sitnicu.

Prva stvar createThumbs () se je poziv pathinfo () . pathinfo () odmor dijelove put u polje. Ovo je korisno za nas, jer treba ekstenzija datoteke za pravilno kreirati sličicu. Sljedeća createThumbs () provjerava da li se radi o jpeg. Ako izvorna datoteka je jpeg createThumbs stvara nova slika na temelju izvorne slike s imagecreatefromjpeg () . Sljedeći korak je da biste dobili širinu i visinu ovu sliku ( imagesx () , imagesy () ). Korištenje $ thumbWidth i omjera širine i visine originalne createThumbs () postavlja nove širinu i visinu sličicu. Korištenje tih novih odnosa createThumbs () stvara "prazna" sliku koja će biti iste širine i visine sa sličicama imagecreatetruecolor () . imagecopyresized () se koristi za promjenu veličine slike i spremite ga u "prazno", upravo stvorili. imagecopyresized () može činiti kao da traje puno parametara, ali ako se uzme pogledajte dokumentaciju zapravo i nije toliko komplicirano. Sada kada postoji kao thumbnail true color slika svi createThumbs treba učiniti je pretvoriti datoteke u jpeg. Da biste to učinili imagejpeg () se zove.

To je kako funkcija radi za JPEG slike. Tu su minimalne razlike. PNGs i. GIFs.

Kako napisati Posebne Browser Kod sa PHP

Posted in PHP by ShortLikeAFox dana 21. srpnja 2008

Dakle, želite pisati kod koji se pojavljuje samo na određenim preglednicima ... Postoje brojni razlozi da to želite učiniti. Prvi put sam osobno potrebno učiniti to dogodilo kad sam bio težak za položiti mp3 na određenu stranicu. Iz nekog razloga nisam mogao napisati kod tako da će igrati na mp3 sam test na preglednicima (IE, Firefox i Opera), i ozakoniti u isto vrijeme. Ako JA sjećati se korektno, to je Internet Explorer koji je bio uzrok problema. Rješenje sam došao gore sa bilo da koriste PHP malo da saznate kada je korisnik koristite IE, a zatim položiti mp3-u ne vrijede kod ako što je slučaj.

Ovo rješenje je dovelo do mp3 svira uvijek korektno i stranice uvijek provjere, jer je W3C validator nikad sama identificira kao IE. To možda neće biti najviše etičke put do W3C usklađenosti, ali to radi.

Drugi put sam sjećam trebaju pisati preglednik specifičan kod je kad sam bio vlasništvo problem sa IE 6 ne prikazuje moj. PNG slike pravilno. JA varav lopta okolo i postaviti nekoliko rješenja problema, ali i od njih završio je zabrljati gore ukupni sloj lokacije na mojim stranicama. Umjesto za rješavanje problema tog problema, otišao sam s brzo rješenje i odlučili to otkriti. Gifs kada korisnik je IE 6. Ako korisnik ima još browser koji je imao. Png problema shvatio sam da je previše loš za njega.

Kako to učiniti:

Prvo morate napisati malo linija koda shvatiti što vaš preglednik korisnik. Ovdje je kako to učiniti s PHP:

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

Ovdje su tri primjera što $ visitorsOS može izgledati kao

  • 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; de; rv: 1.9) Gecko/2008052906 Firefox

Prvi korisnik je Internet Explorer 6, drugi Opera 9,51, a treća Firefox.

Sada kada znamo više informacija nego što zaista trebate o računalom posjetitelja trebamo staviti taj podatak dobro iskoristiti. Recimo da želite napisati kod koji će se samo pojaviti ako korisnik je pokrenut bilo koju verziju Internet Explorera. U tom slučaju biste to učinili:

('MSIE',$visitorsOS)){ ako (eregi ('MSIE', $ visitorsOS)) (

KOD KOJE SAMO će se pojaviti ako korisnik ima IE

)

else (

Kôd koji će se pojaviti u svim ostalim slučajevima

)

Koristim eregi, velika i mala slova regularnih izraza utakmice umjesto ereg, velika i mala slova regularnih izraza utakmice. Ne sjećam se da sam to od paranoje, ili ako sam zapravo postaviti slučaj gdje Internet Explorer sebe identificiran kao MSIE. U oba slučaja eregi ništa neće boljeti, tako da je ono što sam koristiti. U želji da pisati kod za posebne verzije IE bi zahtijevaju samo malo promijeniti. umjesto da ... (eregi ('MSIE' ...) Htjela bih iskoristiti nešto slično (eregi ('MSIE 6.0' ...) ako sam htio kôd koji se pojavio samo za MSIE 6.0.