Как да разберете, където посетителите са географски Използване на PHP

Публикувано в PEAR , PHP от ShortLikeAFox на 13-ти септември, 2008

Ако имате сайт и искате да кажете, когато вашите потребители, идващи от географските PHP и круши правят това възможно. За да включите ПР на гостите, в физическото местоположение първото нещо, което ще трябва да направите, е да се уверите, че имате PEAR Net_Geo модул. Ако не разполагат с PEAR Net_Geo модул, вие ще трябва да използвате PEAR пакет мениджър за да го придобие.

Ако не мислите, че имате достъп до крушата, защото на вашия хостинг пакет, шах вън този обяснение за това как да инсталирате круша по сметка, която не позволява достъп по подразбиране. Тя е написана с GoDaddy споделени сметки в ума, но трябва да работи за повечето хостинг пакети, които не идват с PEAR създаден.

След като сте Net_Geo инсталиран пакет, тя отнема само няколко реда код за придобиване на географски данни:

<? PHP

); require_once ("Нет" / Geo.php ");
]; $ IP = $ _SERVER ["REMOTE_ADDR"];
/ / $ IP = "64.246.30.37";
$ FirstNetGeo = нови Net_Geo ();
$ GEODATA = $ firstNetGeo-> getRecord ($ IP);

?>

($ip); ?> <br/> ПР: <? PHP ехо ($ IP);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitude: <? PHP ехо ($ географски данни ['] LAT);?> <br/>
($geoData[ 'LONG' ]); ?> Дължина: <? PHP ехо ($ GEODATA ["дълги"]);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Държава: <? PHP ехо ($ GEODATA ["държава]);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Държава: <? PHP ехо ($ GEODATA ['] членка);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Град: <? PHP ехо ($ географски данни ['] Сити);?> <br/>

Кодексът На работното място:

ПР: 72.14.192.65

Latitude:

Дължина:

Държава:

Държава:

Град:

Как да се включат функционирането PHP код във вашия WordPress постове

Публикувано в WordPress , PHP от ShortLikeAFox на 17-ти август 2008

Така че искам да бъда в състояние да използва PHP на вашия блог публикации и страници. Това не е проблем. Просто използвате <? PHP ... ... ..?> Ще направи WordPress ядосан, освен ако не инсталирате плъгина първото. Има няколко приставки там, които претендират, че предлагат тази възможност, но това, което аз не съм намерил работа на най-добрите е Exec-PHP . да започнете да използвате PHP код, следвайте тези стъпки:

  1. Изтегляне Exec-PHP
  2. Инсталирайте го ли би всяка плъгин (линка по-горе и четете файл ще ви преведе през това)
  3. Ако в момента сте да го използвате, трябва да изключите редактора WYSIWYG. За да направите това, отидете на Потребителите -> Вашият профил и махнете отметката от Използвай визуален редактор при писане на шах
  4. Започнете да пишете PHP код като обичайния начин: <? PHP .... Код се поставя тук?>

Това е всичко, което трябва да го!

Как да създадете и използвате динамично Име Променливи с PHP

Публикувано в PHP от ShortLikeAFox на 17-ти Август 2008 година

Значи вие искате да ползвате динамични имена на променливи в кода си. Няма проблем. Да речем, че са 100 променливи име dog0, dog1, dog2, ...., Dog98, dog99. Защо вие ще искате да използвате 100 променливи, като например това, вместо на един масив е извън мен, но това няма значение за този пример. При изготвянето на тези променливи в една бърза линия можете да използвате следното:

0 ; $i < 100 ; $i ){ за ($ I = 0; $ I <100; $ I ) (

; $ VariableName = "куче $ I";
$ $ $ = VariableName I; / / присвоява на $ dog1 1, $ dog2 до 2, $ куче 34-34, и т.н ....

)

Сега нека да кажа, че искаш да имат достъп до всички тези променливи. Можете да използвате следните:

0 ; $i < 100 ; $i ){ за ($ I = 0; $ I <100; $ I ) (

; $ VariableName = "куче $ I";
"Хуманитарна помощ" ("<br/>");
"Хуманитарна помощ" ("$ variableName:");
"Хуманитарна помощ" ($ $ variableName);

)

Тази линия отпечатъци:

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

и т.н. ... по пътя към
dog99: 99

Как да Intergrate достъп ISBN на вашия уеб страници Използване на PHP

Публикувано в PHP от ShortLikeAFox на 12-ти август, 2008 год.

ISBN номера или международен стандарт книга числата са полезни идентификатори, които могат да бъдат използвани за намиране на информация за отделни книги. Ако искате да се интегрират ISBN търсения в уеб приложения, PHP прави това възможно.

Първа стъпка: ISBNdb.com е създаде API, което позволява на потребителите от мрежата за достъп до базата данни на техните записи ISBN. Тук е тяхната собствена описание на API:

ISBNdb.com е отдалечен достъп програмен интерфейс за прилагане (API) е проектиран да позволи на други уебсайтове и самостоятелни приложения използване на голям обем данни, събрани от ISBNdb.com от 2003 г. насам. Към това писание, през юли 2005 г., данните включват почти 1.8 милиона книги, почти 3 милиона милиона библиотечни документи; почти един милион теми; стотици хиляди автора и издателя записа анализирани от библиотеката данни, повече от 10 милиона записи на действителните и исторически цени.

За да използвате тази API, първо трябва да се регистрирате. регистрация се буквално секунди. След това, трябва да се създаде ключ. Ключовете ви позволи да имат директен достъп до базата данни ISBN от вашия собствен код. Сайтът ISBNdb.com прави за създаване на ключове лесно.

Втора стъпка: Сега сте започнете да пишете код, за да си взаимодействат с базата данни. Искането за търсене ISBN ще изглежда по следния начин:

Можете да въведете ключ за достъп на мястото на XXXXXX. $ IsbnQuery ще бъде ISBN номер, който се поинтересува $ isbnData е XML файл. За достъп до тези данни, което трябва да споделя кода си знае за какво се занимават с. Нещо като това ще работи:

) ; $ XmlData = @ simplexml_load_file ($ isbnData) или умират ("Без ФАЙЛ заредени");

Сега имате достъп до отделните променливи с повиквания подобно на това:

]->Title ; $ Заглавие = $ xmData-> Booklist [0] -> BookData [0] -> дял;

Тук е за пълен работен например:

<? PHP

$ SearchQuery = "9780684801223"; / / на ISBN за Стареца на Ърнест Хемингуей и морето
$ IsbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ searchQuery"; / / Не забравяйте да замени XXXXXX със свой собствен ключ за достъп
) ; $ XmlData = @ simplexml_load_file ($ isbnData) или умират ("Без ФАЙЛ заредени");
]->Title ; $ Заглавие = $ xmlData-> Booklist [0] -> BookData [0] -> дял;
]->AuthorsText ; $ Автор = $ xmlData-> Booklist [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ Издател = $ xmlData-> Booklist [0] -> BookData [0] -> PublisherText;

); "Хуманитарна помощ" ("$ заглавие <br/>");
); "Хуманитарна помощ" ("$ автори <br/>");
); "Хуманитарна помощ" ("$ издател <br/>");

/ / Този пример отпечатва:
/ / Старецът и морето
/ / Ърнест Хемингуей
/ / Ню Йорк: белетристика Scribner книга, 1995.

?>

Как да Ръчно Вмъкване на група от потребители в един SMF форум Използване на PHP

Публикувано в SMF (необходимо е обикновено машина форум) , PHP от ShortLikeAFox на 30 юли 2008

Този настойнически поема сте запознати с моя пост: Как да вмъкнете ръчно един потребител в един SMF форум Използване на PHP .

Наскоро бяха изправени пред предизвикателството да се движат 800, или групи от една база данни в един форум SMF. Аз изправени пред няколко проблеми, когато става в движение, че аз не покрива в първия пост:

  1. Групата имена не са гарантирани да бъдат безопасни за символ, като знак ход в базата данни на форума. Така че някакво име за изменение функция трябва да бъдат заети.
  2. Групите не са пароли. Така че някакъв вид парола поколение трябва да бъдат заети.

Стъпките, аз отидох за да се регистрират всички ленти във форума беше там малко по следния начин:

Отваряне на база данни Band

за всеки (Band) (

Генериране на парола

Преименуване на група с "безопасни" име

Хвани и генериране на информация, необходима за вмъкване на потребителя

Поставете интервал, в smf_members

Изпрати Band имейл с парола

)

Информация имах на разположение от групата база данни, която е полезна включени: bandName, bandEmail и bandWebsite

Това е поколение функция парола, които използвате (blatently взети от totallyphp.co.uk ):

createRandomPassword функция () (

$ Символа = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((двойно) microtime () * 1000000);

$ I = 0;

$ Премине = ";



а ($ I <= 7) (

33; $ NUM = RAND ()% 33;

$ TMP = substr ($ символа, $ бр, 1);

$ Премине = $ оръжие. $ TMP;

$ I + +;

)

връщане $ преминават

)

Паролата е създаден тук е сравнително слаб, но това е достатъчно добра за моите цели. Всяка функция поколение парола ще работят добре тук. Избрах тази, защото би било лесно за членове да се запомни, ако не реши да я променя.

Как да го постигнете:

/ / Първо се свържете с лента база данни
$ Име = "bandUsername";
$ Домакин = "bandHost";
$ Mypassword = "bandPassword";
$ Db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ("$ домакин", "$ потребителско име", "$ mypassword"), или умират ("не може да се свърже със сървъра");
("cannot select DB"); mysql_select_db ("$ db_name"), или умират ("не може да изберете DB");

/ / Сега вземете всички ленти от базата данни
$ Заявка = "SELECT * FROM allBands";
$ Ленти = mysql_query ($ заявка), или умират ("Грешка 2222b Config");
$ UserRows = mysql_num_rows ($ ленти);

/ / Сега ви позволява свързване към SMF db
$ Домакин = "smfhost"; / / Име на хоста
$ Име = "smfuser; / / MySQL потребителско име
$ Mypassword = "smfpassword"; / / MySQL парола
$ Db_name = "smfdatabase"; / / База данни име

("cannot connect to server"); mysql_connect ("$ домакин", "$ потребителско име", "$ mypassword"), или умират ("не може да се свърже със сървъра");
("cannot select DB"); mysql_select_db ("$ db_name"), или умират ("не може да изберете DB");

/ / $ Vaild_chars ще бъде на масива на позволените символи за имена. Реших да позволяват само букви и цифри. Има и други знаци, които могат да бъдат използвани, че няма да предизвика проблем, но за стил причина аз реших да отида само с букви и цифри
$ Valid_chars = "abcdefghijklmnopqrstu vwxyz 0 1 2 3 4 5 6 7 8 9";
$ Valid_chars = взрив ("", $ valid_chars);

/ / Сега трябва да цикъл през всяка лента

){ за ($ I = 0; $ I <$ userRows; $ I + +) (

($bands)){ ако ($ ред = mysql_fetch_assoc ($ ленти)) (

/ / Извличане на групата информация
екстракт ($ ред);
/ / Създаване на парола за групата
$ RealPassword = createRandomPassword ();
/ / Да избера да повторят bandname и парола, като част от моето отстраняване на грешки и за да мога да виждам функцията, тъй като работи
"Хуманитарна помощ" ("<br/> $ bandName - $ realPassword");
$ NewBand = "";
За всяка буква в името на групата ние ще търсят да се види дали съвпада с валиден символ от $ valid_chars. Той не ние ще се отървем от него и съкращава името лента
($bandName); $j ++ ){ за ($ J = 0; $ к <strlen ($ bandName); $ к + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "Х", strtolower ($ група [$ к]));
ако ($ Temp == "Х")

$ NewBand = $ newBand. $ Група [$ к];

)
/ / I "Хуманитарна помощ" на новото име на една и съща причина, заради която ехо на старото име и парола
"Хуманитарна помощ" ("- $ newBand");
/ / Ние имаме ново име на оркестъра .... Сега нека да започнем buliding на информация трябва да въведете в db ...
$ MemberName = $ newBand;
$ RealName = $ newBand; / / I определя истинското име и името на член на един и същ. Групата може да го промените, ако те искат
$ EmailAddress = $ bandEmail;
$ WebsiteUrl = $ bandWebsite; / / Тъй като имам ленти "на уебсайтове може и да ги въведете
$ WebsiteTitle = $ newBand;
$ Is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Парола = sha1 (strtolower ($ memberName). $ RealPassword); / / парола трябва да са криптирани

/ / Уверете се, че техните държави-isnt 'a със същото име в базата данни на форума. Ние не искаме да влиза някой случайно два пъти
$ Заявка = "Изберете от * smf_members КЪДЕ memberName" = "$ memberName";
("Config Error 2222343242b"); $ Резултат = mysql_query ($ заявка), или умират ("Грешка 2222343242b Config");
$ Nrows = mysql_num_rows ($ резултат);

/ / Ако се установи, потребителско име не се прави нищо
ако ($ nrows> 0) ()

иначе (

/ / Ако потребителят не е вече са се регистрирали за форуми, да направят и да изпратят имейл ....
$ Заявка = "вкарва в smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, websiteUrl, websiteTitle) стойности (" $ memberName ',' $ realName ',' $ emailAddress ',' $ is_activated ',' $ ID_POST_GROUP " , '$ парола', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ Резултат = mysql_query ($ заявка), или умират ("Config Грешка 2232");

/ / Сега ние трябва да се изпрати на групата имейл
$ До = $ emailAddress;
$ Предмет = "Вашият форум потребителско име и парола";

/ / От
$ Заглавна = "от: Аз <me@mysite.com>";

/ / Вашето съобщение
$ Съобщение .= "Вашите потребителско име и парола са изброени по-долу. Можете да променяте или по всяко време. Ако не искат да участват в нашия форум, това не е проблем. Просто никога не влезете в системата и тя ще бъде като нищо не се е случило. \ R \ N ";
$ Съобщение .= "Потребителско име: $ memberName Парола: $ realPassword \ R \ N";

/ / Изпраща имейл
$ Изходяща поща = ($ до $ предмет, $ съобщение, $ заглавна);
ако ($ изходящ)

"Хуманитарна помощ" ("- ДА!");
/ / Това е последната част от нашия "Хуманитарна помощ". В "-ДА!" ще бъдат отпечатани само ако имейл е изпратен. Така че пълна гама разпечатката ще изглежда по следния начин:
/ / Адам Strife - 4s6vsxag - AdamStrife - ДА!

)

)
)

Как да Ръчно Вмъкване на потребителя в един SMF форум Използване на PHP

Публикувано в SMF (необходимо е обикновено машина форум) , PHP от ShortLikeAFox на 28-ми юли, 2008 год.

Този конкретен пример е за SMF 1.1.5. Не можем да гарантираме, че ще работи с всяка друга версия.

Така че тече Обикновено машина форум Софтуер и искате да въведете ръчно един потребител? Няма проблем. Знам, че този проблем изглежда много специфичен, но идеята е обяснено тук може да се адаптира към различни видове форуми и други данни задвижвани софтуерни пакети, като Wordpress. Преди да влязат в точно как да стане това, нека да разгледаме как просто машина Форуми следи от потребители. В базата данни SMF има таблица, наречена smf_members. В smf_members структура изглежда така:

Област Тип Нула

Ключ По подразбиране Допълнително
ID_MEMBER mediumint (8) грозен NO PRI NULL auto_increment
memberName VARCHAR (80) NO MUL
dateRegistered INT (10) грозен NO MUL 0
мнения mediumint (8) грозен NO MUL 0
ID_GROUP smallint (5) грозен NO MUL 0
lngfile tinytext NO MUL
lastLogin INT (10) грозен NO MUL 0
realName tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list текст NO
pm_ignore_list текст NO
messageLabels текст NO
passwd VARCHAR (64) NO
emailAddress tinytext NO
personalText tinytext NO
пол tinyint (4) грозен NO 0
дата на раждане дата NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
място 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
на средата VARCHAR (80) NO
подпис текст NO
timeOffset поплавък NO 0
въплъщение tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) грозен NO 0
karmaGood smallint (5) грозен 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) грозен NO 0
is_activated tinyint (3) грозен NO 1
validation_code VARCHAR (10) NO
ID_MSG_LAST_VISIT INT (10) грозен NO 0
additionalGroups tinytext NO
smileySet VARCHAR (48) NO
ID_POST_GROUP smallint (5) грозен NO MUL 0
totalTimeLoggedIn INT (10) грозен NO 0
passwordSalt VARCHAR (5) NO

Сферата трябва да обърнат внимание на:

  • memberName - Самостоятелно Explanitory.
  • dateRegistered - не е необходимо, но ако не попълва датата регистрирани показва като 31ви Дек, 1969. Датата се записва като една епоха клеймо. Не знам как да се изчисли времеви отпечатъци в главата ти? Няма проблем. Да използвам свободното генератор намерени тук .
  • realName - трябва да се включат. Когато не съм сигурен, че просто се повтаря memberName тук.
  • emailAddress - Самостоятелно Explanitory.
  • is_activated - Трябва да бъде зададен на 1, тъй като ние сме ръчно активиране на член.
  • ID_POST_GROUP - Няма да лъжа. Аз не съм сигурен какво е, но винаги изглежда да се определят до 4. Така че .... Винаги съм го до 4. Не е най-добрият начин за програмата, но това, което можеш да направиш?
  • passwd - паролата, която искате да се даде на нов потребител. Невъзможно е да разбера как да се влиза без да погледне документацията, SMF. Правилното код за криптиране на парола SMF за базата данни изглежда така:

($memberName).$password) $ Passwd = sha1 (strtolower ($ memberName). $ Паролата)

В горния ред от кода, $ парола е действително паролата на потребителя.

Как да го постигнете:

/ / От една страна, се свърже с базата данни SMF

$ Домакин = "име на хост"; / / Име на хоста
$ Име = "Потребител"; / / MySQL потребителско име
$ Mypassword = "парола"; / / MySQL парола
$ Db_name = "Потребител"; / / База данни име

("cannot connect to server"); mysql_connect ("$ домакин", "$ потребителско име", "$ mypassword"), или умират ("не може да се свърже със сървъра");
("cannot select DB"); mysql_select_db ("$ db_name"), или умират ("не може да изберете DB");

$ MemberName = "Ironman";
$ RealName = "Тони Старк";
$ EmailAddress = "ironMan@ironMan.com";
$ Is_activated = 1;
$ ID_POST_GROUP = 4;

$ Парола = "Tony1234";

($memberName).$password); $ Парола = sha1 (strtolower ($ memberName). $ Парола);

$ DateRegistered = 1216951200; / / 07.25.2008 2 ч.

$ Заявка = "вкарва в smf_members (memberName, realName, emailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) стойности (" $ memberName ',' $ realName ',' $ emailAddress ',' $ is_activated ',' $ ID_POST_GROUP ',' $ парола ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ Резултат = mysql_query ($ заявка), или умират ("Грешка SMF 101,234");

Това е всичко, което трябва да го!

Как да направите умалени изображения Използване на PHP

Публикувано в функции , PHP от ShortLikeAFox на 22-ри юли 2008 г

Значи вие искате да създадете една картинка от дадена снимка ... PHP прави тази задача лесно. За първи път пиша функцията по-долу да се справят с изображения качени от потребители на сайта, който ми помогне управление. Добавен изображения на този сайт може да се JPEGs, PNGs или GIF файлове, така че трябваше да напиша една функция, за да се справят с всичките три. Този код се първоначално на базата на разстояние от една функция намерени в webcheatsheet.com

Как да го постигнете:

createThumbs функция ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ / Анализира пътя за разширяването

$ Информация = pathinfo ($ pathToImages. $ Fname);
/ / Да продължи, само ако това е изображението JPEG
($info['extension']) == 'jpeg') ) ако ((strtolower ($ информация "продължаване [']) ==" JPG ") | | (strtolower ($ информация разширение'] [) ==" JPEG "))
(

/ / Зареждане на изображението и да получите размера на изображението
$ IMG = imagecreatefromjpeg ("($ pathToImages) ($ fname)");
$ Широчина = imagesx ($ IMG);
$ Височина = imagesy ($ IMG);

/ / Изчисляване на размера на картинка
$ New_width = $ thumbWidth;
$ New_height = етаж ($ височина * ($ thumbWidth / $ ширина));

/ / Създаване на нов временен образ
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Копиране и живее стария имидж в нов имидж
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ височина);

/ / Запазване на картинка във файл
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

ако (strtolower ($ информация "продължаване [']) ==" GIF ")
(

/ / Зареждане на изображението и да получите размера на изображението
$ IMG = imagecreatefromgif ("($ pathToImages) ($ fname)");
$ Широчина = imagesx ($ IMG);
$ Височина = imagesy ($ IMG);

/ / Изчисляване на размера на картинка
$ New_width = $ thumbWidth;
$ New_height = етаж ($ височина * ($ thumbWidth / $ ширина));

/ / Създаване на нов временен образ
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Копиране и живее стария имидж в нов имидж
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ височина);

/ / Запазване на картинка във файл
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

ако (strtolower ($ информация "продължаване [']) ==" PNG ")
(

/ / Зареждане на изображението и да получите размера на изображението
$ IMG = imagecreatefrompng ("($ pathToImages) ($ fname)");
$ Широчина = imagesx ($ IMG);
$ Височина = imagesy ($ IMG);

/ / Изчисляване на размера на картинка
$ New_width = $ thumbWidth;
$ New_height = етаж ($ височина * ($ thumbWidth / $ ширина));

/ / Създаване на нов временен образ
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / Копиране и живее стария имидж в нов имидж
imagecopyresized ($ tmp_img, $ IMG, 0, 0, 0, 0, $ new_width, $ new_height, $ ширина, $ височина);

/ / Запазване на картинка във файл
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

Как работи

Функцията createThumbs се четири аргументи.

  • $ PathToImages -> Пътят до папката на графичен файл е инча Това може да изглежда по следния начин: / Начало / съдържание / име / HTML / списък / качени /
  • $ Fname -> Името на файла: pic1.gif, johnny.jpg и др ...
  • $ PathToThumbs -> Пътят до папката, която искате миниатюрно изображение да се инча Вие не искате това да бъде един и същ път, колкото $ pathToImages, защото изображението картинка ще има същото име като на оригиналното изображение.
  • $ ThumbWidth -> В ширина, която иска снимка, за да бъдат в пиксели.

Важна забележка, че аз трябва да направя тук е, че тази функция не е на място, различно от файла проверите разширяване, за да сте сигурни, че образът файлове съдържат нищо зловредно. Тъй като файловете createThumbs () работи с вече са качени се приема, че досиетата са били правилно проверени.

Първото нещо, което createThumbs () не е покана pathinfo () . pathinfo () пауза на части от пътя в масив. Това е полезно за нас, защото ние се нуждаем от файловото разширение правилно да създаде картинка. Следваща createThumbs () проверява дали имаме работа с един JPEG. Ако оригиналният файл е JPEG createThumbs създава нов образ на базата на оригиналното изображение с imagecreatefromjpeg () . Следващата стъпка е да получите ширината и височината на картинката ( imagesx () , imagesy () ). Използване на $ thumbWidth и съотношението на оригиналната широчина и височина createThumbs () поставя нови ширината и височината на картинката. Използването на тези нови createThumbs съотношения () създава "празен" образ, който ще бъде същата ширина и височина на картинка с imagecreatetruecolor () . imagecopyresized () се използва за да промените размера на изображението и го запишете в "празни" току-що създадената. imagecopyresized () може да изглежда като тя отнема много параметри, но ако погледнете документацията, той наистина не е толкова сложно. Сега, с умалените съществува като True Image цвят всички createThumbs трябва да направите, е да конвертирате файла в JPEG. За да направите това imagejpeg () се нарича.

Това е начина, по който функционира работи за JPEGs. Има минимални разлики за. PNGs и. GIF файлове.

Как да специален код Напиши браузър с PHP

Публикувано в PHP от ShortLikeAFox на 21-ви юли 2008 г

Значи искате да напишете код, който се появява само за някои браузъри ... Има няколко причини да искате да го направите. За първи път аз лично трябваше да направя това се е случило, когато аз се опитвах да вградите една mp3 на определена страница. По някаква причина не можах да се напише код, така че mp3 ще играят на браузъри да тествам на (IE, Firefox, Opera и), и утвърждава по едно и също време. Ако си спомням правилно, това е Internet Explorer, която е причината за проблема. Решението да дойде с е да използвате малко PHP, за да разберете, когато потребителят е използвал IE, а след това вграждане на mp3 в трети валиден код, ако това е така.

Това решение доведе до mp3 винаги играе правилно и на страницата винаги утвърждава, защото никога не валидатора W3C се идентифицира като IE. Това не може да бъде най-етични начин за достигане до W3C спазване, но тя работи.

Друг път си спомням, които трябва да напишете браузър специален код, е, когато аз бях като има проблем с IE 6 не показвате ми. PNG изображения правилно. Аз Googled наоколо и намерих няколко решения на проблема, но и двамата накрая каша на цялостната места слой на страниците си. Вместо отстраняване на този проблем, аз отидох с бързо решение и реши да се покаже. GIF файлове, когато потребителят трябваше IE 6. Ако потребителят имали друг браузър, който имаше. PNG проблемите си помислих, че е много лошо за него.

Как да го постигнете:

Първо трябва да напиша малко ред код, за да разбера какво браузъра на потребител. Ето как да направите това с PHP:

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

Ето три примера за това, $ visitorsOS може да изглежда като

  • Mozilla/4.0 (съвместим; 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-САЩ; RV: 1.9) Gecko/2008052906 Firefox

Първият потребител е Internet Explorer 6, Opera 9.51 секунди, а трети Firefox.

Сега, когато знаем повече информация, отколкото ние наистина трябва за компютъра на посетителя Трябва също да поставим тази информация да се използва добросъвестно. Да речем, че искате да напишете код, който ще се появи само ако потребителят работи всяка версия на Internet Explorer. В този случай вие ще направите това:

('MSIE',$visitorsOS)){ ако (eregi ("MSIE", $ visitorsOS)) (

Код, който ще се появи само ако ПОТРЕБИТЕЛЯТ е IE

)

иначе (

Код, който ще се появи в останалите случаи

)

Използвам eregi, нечувствителен към регулярния израз мач, вместо да ereg, една чувствителна редовна среща изразяване. Аз не помня, ако го направя това от параноя, или ако аз действително намерили случаите, когато Internet Explorer се идентифицирани като MSIE. И в двата случая eregi няма да боли нещо, така че е това, което използвате. Желаещи да пишете кода за конкретни версии на IE ще изискват само една малка промяна. вместо ... (eregi ("MSIE" ...) Аз ще използва нещо подобно (eregi ("MSIE 6.0" ...), ако исках код, който само се яви за MSIE 6.0.