Архива за ПХП

Како направити Умањени приказ слике помоћу ПХП

Постед ин функција , ПХП је СхортЛикеАФок 22. јула 2008,

Дакле, желите да направите минијатуру из дате слике ... ПХП олакшава овај задатак. Први пут сам написао функцију испод да се баве слике које корисници на сајт који сам помоћ управљају. Уплоадед слике на овом сајту могу бити ЈПЕГ, пнгс или ГИФ, па сам морао да напишем функцију да се баве сва три. Овај код је изворно заснива искључивање функције наћи на вебцхеатсхеет.цом

Како то да урадите:

Функција цреатеТхумбс ($ патхТоИмагес, $ фнаме, $ патхТоТхумбс, $ тхумбВидтх)
(

/ / Анализирати путању за проширење

$ Инфо = патхинфо ($ патхТоИмагес фнаме. $);
/ / Даље само ако је то ЈПЕГ слика
($info['extension']) == 'jpeg') ) иф ((стртоловер ($ инфо ['продужетак']) == 'јпг') | | (стртоловер ($ инфо 'продужетак'] [) == 'јпег'))
(

/ / Учитавања слике и добити слику
$ Имг = имагецреатефромјпег ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);

/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));

/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);

/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);

/ / Сачувате минијатуру у датотеку
имагејпег ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");

)

ако (стртоловер ($ инфо ['продужетак']) == 'гиф ")
(

/ / Учитавања слике и добити слику
$ Имг = имагецреатефромгиф ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);

/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));

/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);

/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);

/ / Сачувате минијатуру у датотеку
имагегиф ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");

)

ако (стртоловер ($ инфо ['продужетак']) == 'гиф')
(

/ / Учитавања слике и добити слику
$ Имг = имагецреатефромпнг ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);

/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));

/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);

/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);

/ / Сачувате минијатуру у датотеку
имагепнг ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");

)

)

Како се то ради

Функција цреатеТхумбс траје четири аргумента.

  • $ ПатхТоИмагес -> путању до фасцикле у слику коју је у. То може да изгледа овако: / хоме / цонтент / корисничко име / хтмл / лист / уплоадс /
  • $ Фнаме -> фајла: пиц1.гиф, јохнни.јпг, итд ...
  • $ ПатхТоТхумбс -> путању до фасцикле у коју желите минијатуру да се унутра не желите да то буде исти пут као $ патхТоИмагес, јер минијатуру ће имати исто име као и оригиналне слике.
  • $ ТхумбВидтх -> ширина које желите сличице да се у пикселима.

Важна напомена да ћу овде је да је ова функција нема ништа на свом месту, осим екстензија фајла проверити, да бисте били сигурни да датотеке не садрже ништа злонамерно. Пошто датотеке цреатеТхумбс () ради са већ отпремљене се претпоставља да су датотеке правилно размотрити.

Прва ствар цреатеТхумбс () не позива се патхинфо () . патхинфо () паузе делове пута у низу. Ово је корисно за нас, јер нам је потребан ознаку типа датотеке за правилно креирање сличице. Следеће цреатеТхумбс () проверава да ли се ради о јпг. Ако је оригинална датотека у формату ЈПЕГ цреатеТхумбс ствара нову слику на основу оригиналне слике са имагецреатефромјпег () . Следећи корак је да се ширина и висина ове слике ( имагеск () , имагеси () ). Коришћење $ тхумбВидтх и однос ширине и висине оригиналне цреатеТхумбс () поставља нове ширину и висину сличицу. Коришћењем ових нових показатеља цреатеТхумбс () креира "празна" слике која ће бити исте ширине и висине сличице са имагецреатетруецолор () . имагецопиресизед () се користи за промену величине слике и сачувајте је у "празне" управо креирали. имагецопиресизед () можда делује као да је потребно много параметара, али ако погледајте документацију то стварно није толико компликовано. Сада када сличице постоји као прави боји све цреатеТхумбс треба да урадите је претворити фајл у јпег формату. Да бисте то урадили имагејпег () се зове.

То је како функција ради за ЈПЕГ слике. Постоје минималне разлике и пнгс. ГИФ-ови..

Како написати Броусер Специфични код у ПХП

Постед ин ПХП је СхортЛикеАФок 21. јула 2008,

Дакле, желите да упишете код који се појављује само у одређеним прегледачима ... Постоји више разлога да желите то да урадите. Први пут сам лично потребно да се то десило када сам био тежак да бисте уградили МП3 на одређене странице. Из неког разлога нисам могао написати код тако да неће играти на МП3 прегледачима сам тест на (ИЕ, Фирефок и Опера), као и проверу у исто време. Ако ЈА сећати се коректно, то је Интернет Екплорер која је узрок проблема. Решење сам дошао горе са је био да се користи мало ПХП-у да бисте сазнали када корисник је користите ИЕ, а потом уградите МП3 на не-валидан код ако је то био случај.

Ово решење је довело до МП3 увек свира правилно и странице увек провере, јер је У3Ц Валидатор никада не идентификује као ИЕ. Ово можда није највише етичке пут до В3Ц сагласности, али то ради.

Други пут Сјећам се треба писати прегледач специфичне код је када сам имао проблем са ИЕ 6 не приказује моје. ПНГ слике правилно. Ја сам око гооглед и нашао неколико решења за проблем, али су обојица завршили петљају до укупног слоја локације на моје странице. Уместо решавање тог проблема, ЈА је отишао са брзо решење и одлучио за приказ. ГИФ-ове, када је корисник ИЕ 6. Ако је корисник имао још један броусер који је имао проблема са пнг. Ја сам схватио да је превише лоше за њега.

Како то да урадите:

Прво морате да напишете мало линија кода да схвати шта прегледача корисник. Ево како се то ради са ПХП:

  • 'HTTP_USER_AGENT' ]; $ ВиситорсОС = $ _СЕРВЕР ['ХТТП_УСЕР_АГЕНТ'];

Овде су три примера оног што $ виситорсОС може изгледати

  • Мозилла/4.0 (цомпатибле; МСИЕ 6.0 Виндовс НТ 5.1; СВ1 НЕТ-у. НЕТ ЦЛР 1.0.3705.
  • Опера/9.51 (Виндовс НТ 5.1; У; пл)
  • Мозилла/5.0 (Виндовс; У Виндовс НТ 5.1; ен-УС; рв: 1.9) Гецко/2008052906 Фирефокс

Први корисник има Интернет Екплорер 6 други Опера 9.51, а трећи Фирефокс.

Сада када знамо више информација него што ми стварно треба о рачунару посетиоца морамо ставити ту информацију на добро употребе. Да желите да пишете код који ће се појавити само ако је корисник активан било коју верзију програма Интернет Екплорер. У том случају би то урадили:

('MSIE',$visitorsOS)){ ако (ереги ("МСИЕ", $ виситорсОС)) (

Код који ће се појавити само ако корисник има ИЕ

)

елсе (

Код који ће се појавити у свим осталим случајевима

)

Користим ереги, велика и мала слова регуларни израз меч уместо ерег, велика и мала слова редовне утакмице израза. Не сећам се да ли да радим ово параноја, или ако сам стварно пронашао случају за Интернет Екплорер себе идентификује као МСИЕ. У оба случаја ереги неће болети ништа, тако да је оно што ја користим. Који желе да пишу код за одређене верзије ИЕ ће захтевати само мале промене. уместо ... (ереги ("МСИЕ" ...) Ја бих користи нешто слично (ереги ("МСИЕ 6.0" ...), ако сам хтео код који само појавио за МСИЕ 6.0.


«Претходна страна« Претходна страна Следеца страна »