Как узнать, где ваши посетители географически использованием PHP

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

Если у вас есть сайт и вы хотите сказать, когда пользователи приходят из географически PHP и PEAR сделать это возможным. В свою очередь, гость IP-во месторасположение первое, что вы собираетесь нужно сделать, это убедиться в том, что у вас есть Net_Geo PEAR модуль. Если у вас нет Net_Geo PEAR модуль, вы будете должны использовать PEAR Package Manager приобрести его.

Если вы не думаете, что у вас есть доступ к PEAR из-хостинга пакет, проверить это объяснение о том, как установить PEAR на счета, которые не предоставляют доступ по умолчанию. Он написан с GoDaddy общих счетов в виду, но должно работать для большинства хостинг пакеты, которые не поставляются с PEAR создан.

После того как вы Net_Geo пакет установлен, то он занимает всего несколько строк кода, для приобретения географические данные:

<? PHP

); require_once ( "Нетто / Geo.php");
]; $ IP = $ _SERVER [ 'REMOTE_ADDR'];
/ / $ IP = "64.246.30.37";
$ firstNetGeo = новый Net_Geo ();
$ геоданных = $ firstNetGeo-> getRecord ($ IP);

?>

($ip); ?> <br/> IP: <? PHP эхо ($ IP);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Широта: <? PHP эхо ($ геоданных [ 'LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Долгота: <? PHP эхо ($ геоданных [ 'Long']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Страна: <? PHP эхо ($ геоданных [ 'СТРАНУ']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Государство: <? PHP эхо ($ геоданных [ 'государство "]);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Город: <? PHP эхо ($ геоданных [ 'Сити']);?> <br/>

Код на работе:

IP: 72.14.193.67

Широта: 33,98

Долгота: -118,45

Страна: США

Государство: CALIFORNIA

Город: Марина-дель-Рей

Как относятся к функционированию PHP код в ваших Wordpress должностей

Опубликованный в WordPress, PHP путем ShortLikeAFox от 17 августа 2008 году

Так вы хотите иметь возможность использовать PHP в ваш блог WordPress постов и страниц. Это не проблема. Просто с помощью <? PHP ... ... ..?> Собирается делать WordPress сердиться, если вы установите плагин в первую очередь. Есть несколько плагинов там, что претендовать на предлагают такую возможность, но тот, который я нашел работу лучшего Exec-PHP. Чтобы начать использовать PHP-код, выполните следующие действия:

  1. Скачать EXEC-PHP
  2. Установить это, как вы бы какой-либо плагин (по ссылке выше и README файл будет вам через это)
  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 + +) (

; $ имяПеременной = "собака $ I";
имяПеременной $ $ = $ I; / / устанавливает $ dog1 1, dog2 $ 2, $ собаку 34 до 34, и т.д. ....

)

Теперь скажу вам хотелось бы доступ все эти переменные. Вы можете использовать следующие:

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

; $ имяПеременной = "собака $ I";
эхо ( "<br/>");
эхо ( "$ имяПеременной:");
эхо ($ $ имяПеременной);

)

Этот цикл гравюр:

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 года, данных включает около 1800000 книг, почти 3000000 млн библиотеку отчетов; почти миллион предметам; сотни тысяч автора и издателя записей разбору из библиотеки данных, более 10000000 записей фактического и исторического Цены.

Для использования этого API необходимо сначала зарегистрироваться. Регистрация занимает буквально секунды до конца. После этого вам нужно создать ключ. Клавиши позволяют непосредственно получить доступ к базе данных ISBN от вашего собственного кода. ISBNdb.com сайт позволяет создать ключи легко.

Шаг второй: Теперь вы начать писать код для взаимодействия с базой данных. Запрос ISBN поиска будет выглядеть так:

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

Вы бы ввести ключ доступа в места ХХХХХХ. $ IsbnQuery бы ISBN ряд интересующих Вас $ isbnData это XML файл. Чтобы получить доступ к этим данным нужно, чтобы Ваш код знаю, что она имеет дело с. Нечто подобное будет работать:

) ; $ xmlData = @ simplexml_load_file ($ isbnData) или умереть ( "файл не загружен");

Теперь вы можете получить доступ к отдельным переменным с призывами вроде этого:

]->Title ; Название $ = $ xmData-> BookList [0] -> BookData [0] -> Название;

Вот полный рабочий пример:

<? PHP

$ searchQuery = "9780684801223"; / / The ISBN для Эрнеста Хемингуэя в Старик и море
$ isbnData = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ searchQuery"; / / Не забудьте заменить ХХХХХХ с вашим собственным ключом доступа
) ; $ 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 мягкая обложка Fiction, 1995.

?>

Как вручную добавить группу пользователей в РВСН Форума с помощью PHP

Написал в РВСН (Simple Машина форум), PHP путем ShortLikeAFox от 30 июля 2008 года

Это руководство предполагает, что вы знакомы с моей должности: Как вручную включить пользователя в РВСН Форум Использование PHP.

Недавно я столкнулся с проблемой продвижения 800 или около того полос из базы данных в РВСН форума. Я столкнулся с парой проблем при переезде, что я не охватывают в первую должность:

  1. Полоса имена не были гарантированы безопасность для символа, символа перейти в РВСН данных. Так какую фамилию изменить функции должны быть заняты.
  2. Полосы не имеют паролей. Поэтому некоторым видам генерации пароля должна быть занятыми.

Шагами я ходил в регистрации всех диапазонах в форуме выходит мало, как это:

Открытая база данных Band

за каждый (Band) (

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

Переименовать Band с "безопасной" название

Grab и накопления информации, необходимой для вставки пользователей

Включить Band в smf_members

Отправить Band сообщение с паролем

)

Информация я можно получить в диапазоне данных, что является полезным относятся: bandName, bandEmail и bandWebsite

Вот функция генерации пароля я использовал (blatently взяты из totallyphp.co.uk):

Функция createRandomPassword () (

$ символов = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand ((двухместный) microtime () * 1000000);

$ I = 0;

$ проход = ";



Хотя ($ I <= 7) (

33; $ п = 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") или умереть ( "не может выбрать БД");

/ / Теперь захватывать все полос из базы данных
$ запрос = "SELECT * FROM allBands";
$ полос = mysql_query ($ запроса) или умереть ( "Ошибка конфигурации 2222b");
$ userRows = mysql_num_rows ($ полос);

/ / Теперь подключиться к РВСН 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") или умереть ( "не может выбрать БД");

/ / $ 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; $ J <strlen ($ bandName); $ J + +) (

($band[$j])); $ Temp = str_replace ($ valid_chars, "Х", strtolower ($ полосы [$ J]));
если ($ Temp == "X")

newBand $ = $ newBand. диапазоне $ [$ J];

)
/ / Я присоединяюсь к новым именем по той же причине я присоединяюсь к старым именем и паролем
эхо ( "- $ newBand");
/ / У нас есть новые Band имя .... Теперь давайте начнем buliding информация нам нужна для вставки в БД ...
memberName $ = $ newBand;
realName $ = $ newBand; / / установить подлинное имя и имя члена то же самое. Полос может измениться, если они хотят
адрес электронной почты $ = $ bandEmail;
websiteUrl $ = $ bandWebsite; / / Со мною банды "веб-сайты, возможно, а войти в них
websiteTitle $ = $ newBand;
$ is_activated = 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ Password = SHA1 (strtolower ($ memberName). realPassword $); / / Пароль должен быть зашифрован

/ / Убедитесь, что не является членом их с таким же именем в РВСН данных. Мы не хотим, чтобы случайно никого вводить в два раза
$ запрос = "SELECT * FROM smf_members ГДЕ memberName = '$ memberName";
("Config Error 2222343242b"); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка конфигурации 2222343242b");
$ nrows = mysql_num_rows ($ результата);

/ / Если имя члена найдено ничего не делать
если ($ nrows> 0) ()

остальное (

/ / Если пользователь еще не зарегистрировались на форуме, сделать это и отправить по электронной почте ....
$ запрос = "INSERT INTO smf_members (memberName, realName, адрес электронной почты, is_activated, ID_POST_GROUP, пароль, websiteUrl, websiteTitle) VALUES ( '$ memberName', '$ realName', '$ адрес электронной почты', '$ is_activated', '$ ID_POST_GROUP" , '$ Пароль', '$ websiteUrl', '$ websiteTitle') ";

("Config Error 2232 "); $ результат = mysql_query ($ запроса) или умереть ( "Config Ошибка 2232");

/ / Теперь нам необходимо отправить по электронной почте полоса
до $ = $ адрес электронной почты;
$ вопросу = "Ваш форум, имя пользователя и пароль";

/ / С
$ HEADER = "От: Me <me@mysite.com>";

/ / Ваше сообщение
$ сообщения .= "Ваш логин и пароль, которые перечислены ниже. Вы можете либо изменить в любое время. Если вы не хотите участвовать в наших форумах, это не проблема. Просто никогда не войти а он будет, как ничего не произошло . \ R \ N ";
$ сообщения .= "Имя пользователя: Пароль memberName $: $ realPassword \ р \ н";

/ / Отправить сообщение
$ = отправленные почтой ($ к $ при условии, $ сообщении, $ заголовка);
если ($ отправленные)

эхо ( "- ДА!");
/ / Это последняя часть нашего эхо. "-ДА!" будет только печатные, если сообщение отправляется. Поэтому полная распечатка линия будет выглядеть примерно так:
/ / Адам волнений - 4s6vsxag - AdamStrife - ДА!

)

)
)

Как вручную добавить пользователя в РВСН Форума с помощью PHP

Написал в РВСН (Simple Машина форум), PHP путем ShortLikeAFox от 28 июля 2008 года

Этот конкретный пример для РВСН 1.1.5. Я не могу гарантировать это будет работать с любой другой версии.

Таким образом вы запускаете Простые машины Программное обеспечение форума и хочу, чтобы вручную ввести пользователя? Нет проблем. Я знаю, эта проблема представляется весьма специфический, но идеи, объяснил здесь могут быть адаптированы для других типов форумов и других баз данных по инициативе программных пакетов, таких, как Wordpress. Прежде чем мы получаем в точности, как это сделать, давайте взглянем на то, как простые машины Форумы отслеживает пользователей. В РВСН базе данных есть таблица называется smf_members. Smf_members структура выглядит следующим образом:

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

Основных По умолчанию Дополнительно
ID_MEMBER mediumint (8) неподписанное НЕТ PRI NULL AUTO_INCREMENT
memberName VARCHAR (80) НЕТ MUL
dateRegistered INT (10) неподписанное НЕТ MUL 0
должности mediumint (8) неподписанное НЕТ MUL 0
ID_GROUP SMALLINT (5) неподписанное НЕТ MUL 0
lngfile tinytext НЕТ MUL
lastLogin INT (10) неподписанное НЕТ MUL 0
realName tinytext НЕТ
Чат SMALLINT (5) НЕТ 0
unreadMessages SMALLINT (5) НЕТ 0
buddy_list текст НЕТ
pm_ignore_list текст НЕТ
messageLabels текст НЕТ
пароль VARCHAR (64) НЕТ
адрес электронной почты tinytext НЕТ
personalText tinytext НЕТ
пола tinyint (4) неподписанное НЕТ 0
Дата рождения дата НЕТ MUL 0001-01-01
websiteTitle tinytext НЕТ
websiteUrl tinytext НЕТ
местонахождение tinytext НЕТ
ICQ tinytext НЕТ
AIM VARCHAR (16) НЕТ
YIM VARCHAR (32) НЕТ
MSN tinytext НЕТ
hideEmail tinyint (4) НЕТ 0
showOnline tinyint (4) НЕТ 1
timeFormat VARCHAR (80) НЕТ
подпись текст НЕТ
timeOffset поплавок НЕТ 0
аватар tinytext НЕТ
pm_email_notify tinyint (4) НЕТ 0
karmaBad SMALLINT (5) неподписанное НЕТ 0
karmaGood SMALLINT (5) неподписанное НЕТ 0
usertitle tinytext НЕТ
notifyAnnouncements tinyint (4) НЕТ 1
notifyOnce tinyint (4) НЕТ 1
notifySendBody tinyint (4) НЕТ 0
notifyTypes tinyint (4) НЕТ 2
memberIP tinytext НЕТ
memberIP2 tinytext НЕТ
secretQuestion tinytext НЕТ
secretAnswer VARCHAR (64) НЕТ
ID_THEME tinyint (4) неподписанное НЕТ 0
is_activated tinyint (3) неподписанное НЕТ 1
validation_code VARCHAR (10) НЕТ
ID_MSG_LAST_VISIT INT (10) неподписанное НЕТ 0
additionalGroups tinytext НЕТ
smileySet VARCHAR (48) НЕТ
ID_POST_GROUP SMALLINT (5) неподписанное НЕТ MUL 0
totalTimeLoggedIn INT (10) неподписанное НЕТ 0
passwordSalt VARCHAR (5) НЕТ

Поля нам необходимо обратить внимание на:

  • memberName - самостоятельное Explanitory.
  • dateRegistered - не является необходимым, но если не заполнены дата зарегистрированных дисплеи, как 31 декабря 1969 года. Дата сохраняется как эпоха времени. Не знаю, как рассчитать время в вашей голове? Нет проблем. Я использую бесплатно генератор найти здесь.
  • realName - должны быть вставлены. Когда я не уверен, я просто повторяю memberName здесь.
  • адрес электронной почты - самостоятельное Explanitory.
  • is_activated - должны быть установлены к 1, поскольку мы вручную активации члена.
  • ID_POST_GROUP - Я не буду лгать. Я не уверен, что это такое, но оно всегда кажется, будет установлен на 4. Итак .... Я всегда установить его на 4. Не самый лучший путь к программе, но то, что вы можете сделать?
  • пароль - пароль, который Вы хотите придать новый пользователь. Невозможно понять, как войти, не глядя на ФСМ документации. Правильного кода для шифрования РВСН пароль для базы данных выглядит так:

($memberName).$password) $ пароль = SHA1 (strtolower ($ memberName). $ пароль)

В приведенной выше строке кода, $ пароля пользователя фактический пароль.

Как это сделать:

/ / Во-первых, подключиться к базе данных РВСН

$ принимающих = "имя хоста"; / / Имя хоста
Имя пользователя $ = "Имя пользователя"; / / MySQL имя пользователя
$ MyPassword = "пароль"; / / MySQL пароль
$ DB_NAME = "Имя пользователя"; / / имя базы данных

("cannot connect to server"); mysql_connect ( "$ пребывания", "$ Имя пользователя", "$ MyPassword") или умереть ( "не могу подключиться к серверу");
("cannot select DB"); mysql_select_db ( "$ DB_NAME") или умереть ( "не может выбрать БД");

$ memberName = "Железный человек";
$ realName = "Тони Старк";
адрес электронной почты $ = "ironMan@ironMan.com";
$ is_activated = 1;
$ ID_POST_GROUP = 4;

$ Password = "Tony1234";

($memberName).$password); $ Password = SHA1 (strtolower ($ memberName). $ пароль);

$ dateRegistered = 1216951200; / / 7-25-2008 2 утра

$ запрос = "INSERT INTO smf_members (memberName, realName, адрес электронной почты, is_activated, ID_POST_GROUP, пароль, dateRegistered) VALUES ( '$ memberName', '$ realName', '$ адрес электронной почты', '$ is_activated', '$ ID_POST_GROUP', ' $ пароль ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ результат = mysql_query ($ запроса) или умереть ( "Ошибка 101,234 РВСН");

Это все есть на него!

Как сделать эскизов изображений с использованием PHP

Написал в функции PHP на ShortLikeAFox по 22 Июль 2008

Таким образом, вы хотите создать эскиз с учетом изображений ... PHP делает эту задачу легко. Сначала я написал функцию ниже, чтобы рассматривать картинки загруженные пользователями на сайте я помочь управлять. Загруженные изображения на этом сайте может быть в формате JPEG, PNG файлов, или GIFs, так что мне пришлось писать функцию для борьбы со всеми тремя. Этот код изначально основаны списание функции найти на 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 Color изображение всех createThumbs нужно сделать, это конвертировать файл в формате JPEG. Для этого imagejpeg () называется.

Вот как функция работает в формате JPEG. Есть минимальные различия в. PNG файлов и. GIFs.

Как написать браузера кода с PHP

Добавлено в PHP путем ShortLikeAFox от 21 июля 2008 года

Так вы хотите написать код, который появляется только на некоторых браузерах ... Есть целый ряд причин хотеть это сделать. В первый раз я лично необходимо сделать это произошло, когда я пытался вставить mp3 на определенную страницу. По некоторым причинам я не мог писать код так, что mp3 будет играть в браузерах я тест на (IE, Firefox, и Опера), а также проверить в то же время. Если я правильно помню, он был Internet Explorer, которая была причиной проблемы. Решение я пришел с состояла в том, чтобы использовать PHP мало, чтобы выяснить, когда пользователь с помощью IE, а затем вставлять mp3, не верный код, если это было так.

Это решение привело к mp3 всегда играли правильно и всегда страница подтверждения, так как W3C валидатор никогда не идентифицирует себя как IE. Это может быть не самым этическим способом достичь выполнения W3C, но она работает.

В другой раз я помню, нужно писать код браузера, когда я был, имеющих проблемы с IE 6 не отображается моя. PNG изображения правильно. Я googled вокруг и обнаружили несколько решений проблемы, но оба они оказались баловаться деятельности в целом слой места на моих страницах. Вместо устранения неполадок, что проблема, я пошел с быстрого решения, и решил для отображения. GIFs, когда пользователь был 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-US; Р.В.: 1.9) Gecko/2008052906 Firefox

Первый пользователь Internet Explorer 6, второй Опера 9,51, а третий Firefox.

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

(’MSIE’,$visitorsOS)){ если (eregi ( "MSIE", $ visitorsOS)) (

Код, который будет появляться только если пользователь т.е.

)

остальное (

Код, который будет появляться во всех других случаях

)

Я использую eregi, нечувствительное регулярные выражения соответствуют вместо EREG, чувствительны к регулярным выражением матч. Я не помню, если я делаю это паранойя, или если я действительно обнаружили случае, если Internet Explorer определили себя как MSIE. В любом случае eregi не повредит ничего так это то, что я использую. Хотеть писать код для конкретной версии IE, требуют лишь небольших изменений. вместо ... (eregi ( "MSIE" ...) Я хотел бы использовать нечто вроде (eregi ( "MSIE 6.0" ...) если я хочу код, который появился только в MSIE 6.0.