Archive para sa php

Paano sa Gumawa ng Thumbnail imahe Paggamit PHP

Posted in function , php sa pamamagitan ng ShortLikeAFox sa Hulyo 22, 2008

Kaya nais mong lumikha ng isang thumbnail mula sa isang ibinigay na imahen ... PHP gumagawa ito madaling gawain. Ako unang wrote ang function sa ibaba upang harapin ang mga imahe-upload ng mga gumagamit sa isang site ng tulong ko tumulong. Uploaded mga imahe sa site na ito ay maaaring mga JPEG, pngs, o gifs, kaya ako had upang makapagsulat ng isang function sa pakikitungo sa lahat ng tatlong. Ang code na ito ay orihinal na batay off ng isang function na natagpuan sa webcheatsheet.com

Paano ba ito:

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

/ / Parse ang landas para sa extension

$ Info = pathinfo ($ pathToImages. Fname $);
/ / Patuloy na lamang kung ito ay isang JPEG larawan
($info['extension']) == 'jpeg') ) kung ((strtolower ($ info ['extension']) == 'jpg') | | (strtolower ($ info 'extension'] [) == 'jpeg'))
(

/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefromjpeg ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));

/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);

/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);

/ / I-save ang thumbnail sa isang file
imagejpeg ($ tmp_img, "$ (pathToThumbs) ($ fname)");

)

kung (strtolower ($ info ['extension']) == 'gif')
(

/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefromgif ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));

/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);

/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);

/ / I-save ang thumbnail sa isang file
imagegif ($ tmp_img, "$ (pathToThumbs) ($ fname)");

)

kung (strtolower ($ info ['extension']) == 'png')
(

/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefrompng ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);

/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));

/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);

/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);

/ / I-save ang thumbnail sa isang file
imagepng ($ tmp_img, "$ (pathToThumbs) ($ fname)");

)

)

Paano ito Works

Ang function createThumbs tumatagal ng apat na argumento.

  • $ PathToImages -> Ang landas sa ang folder na ang file ng imahe ay maaaring in Ito hitsura ng isang bagay tulad nito: / home / content / username / html / listahan / uploads /
  • $ Fname -> Ang filename: pic1.gif, johnny.jpg, etc ...
  • $ PathToThumbs -> Ang landas sa ang folder na nais mong ang mga thumbnail na imahe para maging in ka gumawa hindi magkulang ito upang maging ang parehong landas bilang $ pathToImages, dahil ang thumbnail imahen ay magkakaroon ng parehong pangalan tulad ng orihinal na imahe.
  • $ ThumbWidth -> Ang lapad na gusto mo ang thumbnail upang maging sa pixels.

Isang mahalagang tandaan na ang dapat kong gawin dito ay na ang function na ito ay wala sa lugar, maliban sa ang file extension check, upang siguraduhin na ang mga imahen na file na naglalaman ng malisyosong wala. Dahil ang mga file createThumbs () gumagana sa ay may nai-upload na ito ay hindi tunay na ang mga file ay maayos scrutinized.

Ang unang bagay na createThumbs () ay ang tawag pathinfo () . pathinfo () break ang mga bahagi ng isang landas sa isang array. Ito ay kapaki-pakinabang sa amin, dahil kailangan namin ang file extension na maayos gumawa ng thumbnail. Next createThumbs () tseke upang makita kung kami ay pakikitungo sa isang jpeg. Kung ang orihinal na file ay isang jpeg createThumbs lumilikha ng isang bagong imahe batay sa orihinal na imahe na may imagecreatefromjpeg () . Ang susunod na hakbang ay upang makakuha ng ang lapad at taas ng ang larawan na ito ( imagesx () , imagesy () ). Paggamit ng $ thumbWidth at ang ratio ng orihinal na lapad at taas createThumbs () set ang bagong lapad at taas ng thumbnail. Paggamit ng mga bagong createThumbs ratios () lumilikha ng isang "blangko" imahe na ay ang parehong lapad at taas ng thumbnail sa imagecreatetruecolor () . imagecopyresized () ay ginagamit upang palitan ang laki ng imahe at i-save ito sa "blangko" lamang nilikha. imagecopyresized () ay maaaring mukhang tulad ng ito ay umaabot ng isang pulutong ng mga parameter, ngunit kung ka kumuha ng isang tingnan ang babasahin ito tunay ay hindi na kumplikado. Ngayon na thumbnail ang umiiral na bilang isang tunay na imahen na kulay ng lahat ng createThumbs mga pangangailangan upang gawin ay convert ang file sa isang jpeg. Para gawin ito imagejpeg () ay tinatawag na.

Iyan ay kung paano ang function ay gumagana para sa mga JPEG. May mga kaunti para sa mga pagkakaiba. Pngs at. Gifs.

Paano Magsulat ng Browser Tiyak Code sa PHP

Posted in php sa pamamagitan ng ShortLikeAFox sa Hulyo 21, 2008

Kaya na nais mong isulat ang code na lamang lilitaw sa mga tiyak na mga browser ... Mayroong isang bilang ng mga dahilan sa nais na gawin ito. Ang unang pagkakataon ko personal na kailangan upang gawin ito nangyari kapag ako ay trying sa-embed ng isang mp3 sa isang tiyak na pahina. Para sa ilang kadahilanan ay hindi ko isulat ang code sa gayon na ang mga mp3 ay play sa browser ko ang test sa (IE, Firefox, Opera at), at mapatunayan sa parehong oras. Kung ako tandaan tama, ito ay Internet Explorer ay na nagiging sanhi ng problema. Ang solusyon ko ay dumating up na may ay upang gumamit ng isang maliit na PHP upang malaman kapag ang gumagamit ay gumagamit ng IE, at pagkatapos ay embed ng mp3 sa di-wastong code kung na ang kaso.

solusyon na ito na humantong sa mp3 ang laging naglalaro at tama ang mga pahina laging pagpapatunay, dahil ang W3C validator hindi kinikilala ang kanyang sarili bilang IE. Na ito ay hindi maaaring ang pinaka-etikal na paraan upang maabot ang W3C pagsunod, ngunit ito gumagana.

Isa pang oras ko matandaan nangangailangan ng sumulat ng mga tiyak na browser code ay kapag ako ay nagkakaroon ng problema sa IE 6 ay hindi nagpapalabas sa aking. Png mga imahe nang tama. Ako googled sa paligid at natagpuan ng ilang mga solusyon sa problema, ngunit pareho ng mga ito natapos up messing up ang pangkalahatang lokasyon ng layer sa aking mga pahina. Sa halip ng pag-aayos na ang problema, nagpunta ko sa mabilis na solusyon at nagpasyang sa display. Gifs kapag ang gumagamit ay IE 6. Kung ang user ay nagkaroon ng isa pang browser na nagkaroon. Png problema ako may korte na ay masyadong masama para sa kanya.

Paano na gawin ito:

Una kailangan mong magsulat ng isang maliit na linya ng code upang malaman kung ano ang iyong browser ay gumagamit. Narito ang kung paano gawin na may PHP:

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

Narito ang tatlong mga halimbawa ng kung ano ang $ visitorsOS maaaring magmukhang

  • 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

Ang unang user ay Internet Explorer 6, ang pangalawang Opera 9.51, at ang ikatlong Firefox.

Ngayon na alam namin ng karagdagang impormasyon kaysa namin talagang kailangan tungkol sa computer ang mga bisita ay kailangan naming ilagay ang impormasyon na iyon sa mabuting gamitin. Say na nais mong isulat ang code na ay lalabas lamang kung ang user ay tumatakbo sa anumang bersyon ng Internet Explorer. Sa kaso na gusto mong gawin ito:

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

CODE NA ay lalabas lamang KUNG GUMAGAMIT AY IE

)

else (

CODE na ipapakita sa LAHAT ibang kaso

)

gamitin ko eregi, isang case insensitive regular na expression tumugma sa halip ng ereg, isang case sensitive regular na expression tugma. hindi ko matandaan kung gagawin ko ito sa labas ng paranoya, o kung ako tunay na natagpuan ng isang kaso kung saan ang Internet Explorer na kinilala sa kanyang sarili bilang msie. Sa alinmang kaso eregi ay hindi nasaktan kahit ano kaya ito ay kung ano ang gamit ko. Kulang na magsulat ng code para sa tiyak na mga bersyon ng IE ay nangangailangan lamang ng isang maliit na pagbabago. sa halip ng ... (eregi ('MSIE' ...) Gusto kong gamitin ang isang bagay tulad ng (eregi ('MSIE 6.0' ...) kung ako pinaghahanap code na lamang lumitaw para sa MSIE 6.0.


«Previous Page« Nakaraang Pahina Susunod na mga entry »