Come a dire dove sono tuoi visitatori Geograficamente Utilizzo di PHP

Posted in PEAR, php da ShortLikeAFox il 13 settembre, 2008

Se avete un sito web e volete dire dove sono i tuoi utenti provenienti da geograficamente PHP e PEAR rendere questo possibile. Per attivare un ospite della PI in una posizione fisica la prima cosa che avranno bisogno di fare è assicurarsi di avere il modulo PEAR Net_Geo. Se non hai il modulo Net_Geo PEAR, si avrà a utilizzare il PEAR Package Manager per ottenerlo.

Se non si pensa che si ha accesso al PEAR causa del vostro pacchetto di hosting, check out questa spiegazione su come installare PEAR su un conto che non consentono l'accesso per impostazione predefinita. E 'scritto con GoDaddy account condivisi in mente, ma dovrebbe funzionare per la maggior parte dei pacchetti di hosting che non sono dotati di PEAR istituito.

Dopo aver Net_Geo pacchetto installato, solo poche righe di codice per acquisire dati geografici:

<? php

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

?>

($ip); ?> <br/> IP: <? Php echo ($ ip);?> <br/>
($geoData[ 'LAT' ]); ?> <br/> Latitudine: <? Php echo ($ geodati [ 'LAT']);?> <br/>
($geoData[ 'LONG' ]); ?> Longitudine: <? Php echo ($ geodati [ 'LONG']);?>
<br/>
($geoData[ 'COUNTRY' ]); ?> <br/> Paese: <? Php echo ($ geodati [ 'PAESE']);?> <br/>
($geoData[ 'STATE' ]); ?> <br/> Stato: <? Php echo ($ geodati [ 'STATO']);?> <br/>
($geoData[ 'CITY' ]); ?> <br/> Città: <? Php echo ($ geodati [ 'CITTA']);?> <br/>

Il Codice sul luogo di lavoro:

IP: 72.14.193.67

Latitudine: 33,98

Longitudine: -118,45

Paese: Stati Uniti

Stato: CALIFORNIA

Città: MARINA DEL REY

Come Includi Funzionamento codice PHP nel tuo Wordpress Interventi

Pubblicato in Wordpress, php da ShortLikeAFox il 17 agosto 2008

Così si desidera essere in grado di usare il PHP nel tuo blog Wordpress e pagine. That's no problem. Basta con <? Php ... ... ..?> È andare a fare a meno arrabbiato Wordpress di installare un plugin per primi. Ci sono alcuni plugin che ci sostengono di offrire questa funzionalità, ma quello che ho trovato le migliori opere è Exec-PHP. Per iniziare a utilizzare il codice PHP, segui questi passaggi:

  1. Scarica Exec-PHP
  2. Installarlo come si farebbe qualsiasi plug in (il link qui sopra e file readme si cammina attraverso questo)
  3. Se si sta utilizzando, è necessario disattivare l'editor WYSIWYG. Per fare questo, vai a Utenti -> il tuo profilo e deselezionare la casella di controllo Usa il redattore visivo durante la scrittura di controllo
  4. Iniziare a scrivere codice php come si farebbe normalmente: <? Php .... Codice qui va?>

Questo è tutto quello che ad essa!

Come creare e utilizzare il nome dinamicamente variabili con PHP

Posted in php da ShortLikeAFox il 17 agosto 2008

Così si desidera utilizzare la variabile dinamica nomi nel codice. Nessun problema. Diciamo che avete chiamato dog0 variabili 100, dog1, dog2, ...., Dog98, dog99. Perché si consiglia di utilizzare 100 variabili come questo, invece di un array è al di là di me, ma non importa per questo esempio. Per impostare queste variabili in un circuito veloce si può utilizzare il seguente:

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

; VariableName $ = "$ i cani";
$ $ $ i = VariableName; / / $ dog1 set a 1, $ dog2 a 2, $ cane 34 a 34, ecc ....

)

Ora diciamo di voler accedere a tutte queste variabili. È possibile utilizzare il seguente:

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

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

)

Questo circuito stampato:

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

etc ... tutto il modo di
dog99: 99

Come Intergrate ISBN Accesso a pagine web Utilizzo di PHP

Posted in php da ShortLikeAFox il 12 agosto, 2008

ISBN o International Standard Book Numeri utili sono identificatori che possono essere utilizzati per trovare le informazioni sui singoli libri. Se si desidera integrare ISBN ricerche nel vostro applicazioni web PHP rende fattibile.

Uno: ISBNdb.com è uno ha creato una API che consente agli utenti di tutto il web per accedere ai loro database di record ISBN. Qui è proprio la descrizione delle API:

ISBNdb.com 's di accesso remoto Application Programming Interface (API) è stato progettato per consentire ad altri siti web e applicazioni stand-alone utilizzare la vasta collezione di dati raccolti da ISBNdb.com dal 2003. Come la scrittura di questo, nel luglio del 2005, i dati comprende quasi libri 1800000; quasi 3000000 milioni di record biblioteca; vicino a un milione di soggetti; centinaia di migliaia di autore ed editore di documenti analizzati biblioteca dati; più di 10000000 di record attuale e storica prezzi.

Per utilizzare questa API è necessario innanzitutto registrarsi. Registrazione prende letteralmente secondi. Dopo di ciò, è necessario impostare una chiave. Tasti ti consentono di accedere direttamente alla banca dati ISBN dal tuo codice. Il sito web ISBNdb.com rende facile la creazione di chiavi.

Due: ora si sta iniziando a scrivere codice per interagire con il database. Una richiesta di un codice ISBN di ricerca avrà un aspetto simile a questo:

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

Puoi inserire la tua chiave di accesso al posto di XXXXXX. IsbnQuery $ sarebbe il numero ISBN siete interessati poll $ isbnData è un file XML. Per accedere a questi dati è necessario per far conoscere il vostro codice di ciò che si sta occupando. Qualcosa come questo lavoro:

) ; xmlData $ = @ simplexml_load_file ($ isbnData) or die ( "nessun file caricato");

Ora è possibile accedere a singole variabili con chiamate simile a questo:

]->Title ; $ title = $ xmData-> BookList [0] -> BookData [0] -> titolo;

Ecco un esempio completo di lavoro:

<? php

Searchquery $ = "9780684801223"; / / Il codice ISBN di Ernest Hemingway's vecchio e il mare
isbnData $ = "http://isbndb.com/api/books.xml?access_key=XXXXXX&index1=isbn&value1 = $ Searchquery"; / / Ricordati di sostituire XXXXXX con la propria chiave di accesso
) ; xmlData $ = @ simplexml_load_file ($ isbnData) or die ( "nessun file caricato");
]->Title ; $ title = $ xmlData-> BookList [0] -> BookData [0] -> titolo;
]->AuthorsText ; $ = $ xmlData autori-> BookList [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ = $ xmlData editore-> BookList [0] -> BookData [0] -> PublisherText;

); echo ( "$ titolo <br/>");
); echo ( "$ <br/> autori");
); echo ( "$ <br/> editore");

/ / Questo esempio stampe:
/ / Il vecchio e il mare
/ / Ernest Hemingway
/ / New York: Scribner Fiction Paperback, 1995.

?>

Come inserire manualmente un gruppo di utenti in un forum SMF Utilizzo di PHP

Posted in SMF (Simple Machine Forum), php da ShortLikeAFox il 30 luglio, 2008

Questo tutorial presuppone che è familiare con il mio post: Come Inserire un manuale utente in un forum SMF Utilizzo di PHP.

Recentemente ho dovuto affrontare la sfida di passare in modo bande 800 o da un database in un forum SMF. Ho affrontato un paio di problemi al momento di formulare la mossa che non mi riguardano in primo post:

  1. La band nomi non sono stati garantiti per essere sicuro per un carattere per carattere spostare in SMF database. Quindi una sorta di funzione di modificare il nome doveva essere impiegato.
  2. Le bande non hanno password. Quindi un certo tipo di generazione di password deve essere impiegato.

I passi sono andato per la registrazione di tutte le bande nel forum è andato un po 'come questo:

Aprire il database Band

per ogni (Band) (

Genera Password

Rinomina Band con "sicuro" nome

Afferrare e generare le informazioni necessarie per inserire l'utente

Inserisci Band in smf_members

Banda Invia una e-mail con la password

)

Le informazioni che avevo a disposizione dalla banca dati che la band è stata utile inclusi: bandName, bandEmail, e bandWebsite

Ecco la funzione di generazione di password che ho usato (blatently prese da totallyphp.co.uk):

createRandomPassword funzione () (

$ chars = "abcdefghijkmnopqrstuvwxyz023456789";

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

$ i = 0;

$ pass = ";



while ($ i <= 7) (

33; $ num = rand ()% 33;

$ tmp = substr ($ chars, $ num, 1);

$ pass = $ pass. $ tmp;

$ i + +;

)

return $ pass;

)

La password creata qui è relativamente debole, ma è stato abbastanza buono per i miei scopi. Qualsiasi password funzione di generazione di lavorare bene qui. Ho scelto questo, perché sarebbe stato facile per i membri di ricordare se ha scelto di non modificare.

Come fare:

/ / In primo luogo la connessione a banda database
$ username = "bandUsername";
$ host = "bandHost";
miapassword $ = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

/ / Ora afferrare tutte le bande dal database
$ query = "SELECT * FROM allBands";
$ bande = mysql_query ($ query) or die ( "Errore di configurazione 2222b");
$ userRows = mysql_num_rows ($ bande);

/ / Ora consente la connessione a smf db
$ host = "smfhost"; / / Nome host
$ username = "smfuser; / / MySQL username
miapassword $ = "smfpassword"; / / MySQL password
$ db_name = "smfdatabase"; / / nome del database

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare DB");

/ / $ vaild_chars sarà consentito l'array di caratteri per i nomi utente. Ho deciso di consentire solo lettere e numeri. Ci sono altri personaggi che potrebbero essere utilizzati, che non causa un problema, ma per ragioni di stile, ho deciso di andare con solo lettere e numeri
valid_chars $ = "abcdefghijklmnopqrstu VWXYZ 0 1 2 3 4 5 6 7 8 9";
$ valid_chars = explode ( "", $ valid_chars);

/ / Ora abbiamo bisogno di loop attraverso ciascuna banda

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

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

/ / Estrarre la band informazioni
estratto ($ row);
/ / Creazione di una password per la banda
$ realPassword = createRandomPassword ();
/ / Ho scelto di eco il bandname e la password come parte della mia e di debug in modo che io possa vedere la funzione come funziona
echo ( "<br/> bandName $ - $ realPassword");
newBand $ = "";
/ / Per ogni lettera nella banda nome daremo un'occhiata per vedere se corrisponde a un carattere valido a partire da $ valid_chars. E non stiamo andando a sbarazzarsi di esso e troncare il nome della band
($bandName); $j ++ ){ for ($ j = 0; $ j <strlen ($ bandName); $ j + +) (

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

newBand $ = $ newBand. $ banda [$ j];

)
/ / I eco il nuovo nome per lo stesso motivo mi associo il vecchio nome e la password
echo ( "- $ newBand");
/ / Abbiamo il nuovo nome del gruppo musicale .... ora cominciamo buliding le informazioni abbiamo bisogno di inserire nel db ...
memberName $ = $ newBand;
$ realname = $ newBand; / / impostare il vero nome e lo stesso nome utente. Le bande si può cambiare, se vogliono
$ = $ EmailAddress bandEmail;
websiteUrl $ = $ bandWebsite; / / Dal momento che ho le bande 'siti web potrebbe anche entrare li
websiteTitle $ = $ newBand;
is_activated = $ 1;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ password = sha1 (strtolower ($ memberName). $ realPassword); / / La password deve essere codificato

/ / Assicurarsi che la loro non è un membro con lo stesso nome del database di SMF. Noi non vogliamo entrare chiunque accidentalmente due volte
$ query = "SELECT * FROM smf_members DOVE memberName = '$ memberName'";
("Config Error 2222343242b"); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 2222343242b");
$ nRows = mysql_num_rows ($ result);

/ / Se il nome utente non si trova nulla
if ($ nRows> 0) ()

else (

/ / Se l'utente non è già firmato per il forum, e fare in modo di inviare un 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 "); $ risultato = mysql_query ($ query) or die ( "Errore di configurazione 2232");

/ / Ora abbiamo bisogno di banda per inviare una e-mail
$ a = $ EmailAddress;
$ subject = "Il tuo forum di nome utente e la password";

/ / Da
$ header = "a partire da: <me@mysite.com> Me";

/ / Il tuo messaggio
$ messaggio .= "Il tuo nome utente e password sono elencati di seguito. È possibile modificare in qualsiasi momento sia. Se non si desidera partecipare al nostro forum, che non è problema. Just mai il log in e sarà come sempre è accaduto nulla . \ r \ n ";
$ messaggio .= "Nome: $ memberName Password: $ realPassword \ r \ n";

/ / Inviare e-mail
$ sentmail = mail ($ a, $ oggetto, $ messaggio, $ header);
if ($ sentmail)

echo ( "- Sì!");
/ / Questa è l'ultima parte del nostro eco. Il "SI!" solo essere stampati, se viene inviata una e-mail. Dunque, una linea completa di stampa avrà un aspetto simile a questo:
/ / Adam Strife - 4s6vsxag - AdamStrife - Sì!

)

)
)

Come Inserire un manuale utente in un forum SMF Utilizzo di PHP

Posted in SMF (Simple Machine Forum), php da ShortLikeAFox il 28 luglio, 2008

Questo esempio è per SMF 1.1.5. Non posso garantire che funziona con qualsiasi altra versione.

Quindi si esegue Simple Machine Forum Software e desidera inserire manualmente un utente? Nessun problema. So che questo problema sembra molto specifiche, ma le idee spiegato qui può essere adattato ad altri tipi di forum e di altri database di pacchetti software, come Wordpress. Prima di entrare esattamente come fare questo, diamo un'occhiata a come semplice Machine Forum tiene traccia degli utenti. Nella banca dati SMF c'è una tabella denominata smf_members. Il smf_members struttura simile a questa:

Campo Tipo + + digitare Null

Chiave Predefinito Extra
ID_MEMBER mediumint (8) unsigned NO PRI NULL AUTO_INCREMENT
memberName varchar (80) NO MUL
dateRegistered int (10) unsigned NO MUL 0
posti mediumint (8) unsigned NO MUL 0
ID_GROUP smallint (5) unsigned NO MUL 0
lngfile tinytext NO MUL
lastLogin int (10) unsigned NO MUL 0
realname tinytext NO
instantMessages smallint (5) NO 0
unreadMessages smallint (5) NO 0
buddy_list testo NO
pm_ignore_list testo NO
messageLabels testo NO
passwd varchar (64) NO
EmailAddress tinytext NO
personalText tinytext NO
genere tinyint (4) unsigned NO 0
data di nascita data NO MUL 0001-01-01
websiteTitle tinytext NO
websiteUrl tinytext NO
località 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
firma testo NO
timeOffset float NO 0
avatar tinytext NO
pm_email_notify tinyint (4) NO 0
karmaBad smallint (5) unsigned NO 0
karmaGood smallint (5) unsigned 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) unsigned NO 0
is_activated tinyint (3) unsigned NO 1
validation_code varchar (10) NO
ID_MSG_LAST_VISIT int (10) unsigned NO 0
additionalGroups tinytext NO
smileySet varchar (48) NO
ID_POST_GROUP smallint (5) unsigned NO MUL 0
totalTimeLoggedIn int (10) unsigned NO 0
passwordSalt varchar (5) NO

Settori dobbiamo prestare attenzione a:

  • memberName - Auto Explanitory.
  • dateRegistered - non è necessario, ma se non compilato visualizza la data registrata nel dicembre 31a 1969. La data viene salvato come un'epoca timestamp. Non so come calcolare i timestamp nella tua testa? Nessun problema. Io uso la libera generatore trovare qui.
  • realname - deve essere inserito. Quando io non sono sicuro di aver appena ripetere memberName qui.
  • EmailAddress - Auto Explanitory.
  • is_activated - Deve essere impostato a 1, dato che sono un membro di attivare manualmente.
  • ID_POST_GROUP - Non mi mentire. Non sono sicuro di che cosa si tratta, ma sembra sempre essere impostato a 4. Quindi .... Ho sempre impostato a 4. Non il modo migliore per programma, ma che cosa puoi fare?
  • passwd - La password che si desidera dare al nuovo utente. E 'impossibile capire come entrare senza guardare la SMF documentazione. Il codice per cifrare un SMF password per il database simile al seguente:

($memberName).$password) $ passwd = sha1 (strtolower ($ memberName). $ password)

In linea di codice, $ password è la password dell'utente reale.

Come fare:

/ / In primo luogo, stabilire la connessione al database di SMF

$ host = "hostname"; / / Nome host
$ username = "nome utente"; / / MySQL username
miapassword $ = "password"; / / MySQL password
$ db_name = "nome utente"; / / nome del database

("cannot connect to server"); mysql_connect ( "$ host", "$ username", "$ miapassword") or die ( "non può connettersi al server");
("cannot select DB"); mysql_select_db ( "$ db_name") or die ( "non può selezionare 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; / / 7-25-2008 2 AM

$ query = "INSERT INTO smf_members (memberName, realname, EmailAddress, is_activated, ID_POST_GROUP, passwd, dateRegistered) VALUES ( '$ memberName', '$ realname', '$ EmailAddress',' $ is_activated ',' $ ID_POST_GROUP ',' $ password ',' $ dateRegistered ') ";
("SMF Error 101.234 "); $ risultato = mysql_query ($ query) or die ( "Errore SMF 101,234");

Questo è tutto quello che ad essa!

Come fare miniature delle immagini Utilizzo di PHP

Posted in funzioni, php da ShortLikeAFox il 22 luglio, 2008

Così si desidera creare una miniatura di una determinata immagine ... PHP rende questo compito facile. Ho scritto il primo la funzione qui sotto per affrontare con le immagini caricate dagli utenti in un sito aiutare amministrare. Uploaded immagini di questo sito possono essere JPEG, PNG, o gif, ho avuto modo di scrivere una funzione per far fronte a tutti e tre. Questo codice è basato, in origine, al largo di una funzione disponibile sul sito webcheatsheet.com

Come fare:

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

/ / Percorso per analizzare la proroga

$ info = pathinfo ($ pathToImages. $ fname);
/ / Continuare solo se si tratta di una immagine JPEG
($info['extension']) == ‘jpeg’) ) if ((strtolower ($ info [ 'estensione']) == 'jpg') | | (strtolower ($ info [ 'estensione']) == 'jpeg'))
(

/ / Caricare l'immagine e avere le dimensioni
$ img = imagecreatefromjpeg ( "($ pathToImages)) ($ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni delle miniature
new_width $ = $ thumbWidth;
= $ new_height piano ($ altezza * (thumbWidth $ / $ width));

/ / Crea una nuova immagine temporaneo
tmp_img imagecreatetruecolor = $ ($ new_width, $ new_height);

/ / Copia e ridimensionare vecchia immagine in nuova immagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ larghezza, $ altezza);

/ / Salvare un file in anteprima
imagejpeg ($ tmp_img, "($ pathToThumbs)) ($ fname");

)

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

/ / Caricare l'immagine e avere le dimensioni
$ img = imagecreatefromgif ( "($ pathToImages)) ($ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni delle miniature
new_width $ = $ thumbWidth;
= $ new_height piano ($ altezza * (thumbWidth $ / $ width));

/ / Crea una nuova immagine temporaneo
tmp_img imagecreatetruecolor = $ ($ new_width, $ new_height);

/ / Copiare la vecchia immagine e ridimensionare l'immagine in nuova
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ larghezza, $ altezza);

/ / Salvare un file in anteprima
imagegif ($ tmp_img, "($ pathToThumbs)) ($ fname");

)

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

/ / Caricare l'immagine e avere le dimensioni
$ img = imagecreatefrompng ( "($ pathToImages)) ($ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni delle miniature
new_width $ = $ thumbWidth;
= $ new_height piano ($ altezza * (thumbWidth $ / $ width));

/ / Crea una nuova immagine temporaneo
tmp_img imagecreatetruecolor = $ ($ new_width, $ new_height);

/ / Copia e ridimensionare vecchia immagine in nuova immagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ larghezza, $ altezza);

/ / Salvare un file in anteprima
imagepng ($ tmp_img, "($ pathToThumbs)) ($ fname");

)

)

Come funziona

La funzione createThumbs prende quattro argomenti.

  • $ pathToImages -> Il percorso della cartella del file immagine si trova Si potrebbe apparire qualcosa di simile a questo: / home / content / nomeutente / html / list / uploads /
  • $ fname -> Il nome del file: pic1.gif, johnny.jpg, ecc ...
  • $ pathToThumbs -> Il percorso della cartella che si desidera l'anteprima delle immagini da poll non si desidera che questo sia lo stesso percorso pathToImages $, perché l'immagine di anteprima avrà lo stesso nome, come l'immagine originale.
  • $ thumbWidth -> La larghezza che si desidera l'anteprima di essere in pixel.

Una nota importante che vorrei fare è che questa funzione non ha niente a posto, altri l'estensione del file di controllo, per assicurarsi che il file di immagine contiene nulla di dannoso. Poiché i file createThumbs () con le opere sono già stati caricati si suppone che i file sono stati adeguatamente esaminati.

La prima cosa createThumbs () non è chiamata pathinfo (). pathinfo () rompe le parti di un tracciato in un array. Questo è utile per noi, perché abbiamo bisogno l'estensione del file per creare l'anteprima correttamente. Avanti createThumbs () dei controlli per vedere se si tratta di un formato jpeg. Se il file originale è un jpeg createThumbs crea una nuova immagine basata su l'immagine originale con imagecreatefromjpeg (). Il passo successivo è quello di ottenere la larghezza e l'altezza di questa immagine (imagesx (), imagesy ()). Usando $ thumbWidth e il rapporto tra la larghezza e l'altezza originaria createThumbs () definisce la nuova larghezza e l'altezza della miniatura. L'utilizzo di questi nuovi rapporti createThumbs () crea un "vuoto" di immagine che sarà la stessa larghezza e l'altezza della miniatura con imagecreatetruecolor (). Imagecopyresized () è usato per ridimensionare l'immagine e salvarla in "bianco" appena creata. imagecopyresized () potrebbe sembrare che prende un sacco di parametri, ma se si dà un'occhiata alla documentazione che non è davvero complicato. Ora che l'anteprima esiste una vera e propria immagine di tutti i colori createThumbs deve fare è convertire il file in un formato jpeg. Per fare questo imagejpeg () è chiamato.

Ecco come funziona la funzione per le immagini JPEG. Ci sono differenze minime per. Pngs e. Gifs.

Come scrivere codice specifico per browser con PHP

Posted in php da ShortLikeAFox il 21 luglio 2008

Così si desidera scrivere codice che viene visualizzato solo su alcuni browser ... Ci sono un certo numero di ragioni per voler fare questo. La prima volta che ho personalmente necessarie per fare questo si è verificato quando ho cercato di incorporare un mp3 su una certa pagina. Per qualche motivo non ho potuto scrivere il codice in modo che l'mp3 si svolgono sul browser I test su (IE, Firefox e Opera), e la validazione al tempo stesso. Se ricordo bene, era di Internet Explorer che è stata la causa del problema. La soluzione mi era venuto con l'utilizzo di un po 'di PHP per sapere quando l'utente è stato utilizzando IE, e poi incorporare le mp3 non valido se il codice che è stato il caso.

Questa soluzione ha portato alla riproduzione mp3 sempre correttamente e sempre convalidare la pagina, perché il W3C validator non si identifica come IE. Questo potrebbe non essere il modo più etico per raggiungere il rispetto del W3C, ma funziona.

Un'altra volta mi ricordo di aver bisogno di scrivere codice specifico browser è quando mi è stato avere un problema con IE 6 non visualizza il mio. Correttamente le immagini PNG. I googled circa e ha trovato un paio di soluzioni al problema, ma ciascuno di essi ha finito per fare il livello globale località sulle mie pagine. Invece di risoluzione dei problemi che il problema, mi sono recato con la soluzione rapida e ha deciso di visualizzazione. Gifs quando l'utente ha IE 6. Se l'utente ha un altro browser che aveva. Png problemi che ho figurato che è stato troppo male per lui.

Come fare:

Per prima cosa è necessario scrivere una piccola riga di codice per capire ciò che il vostro browser utente ha. Ecco come fare con PHP:

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

Ecco tre esempi di ciò che $ visitorsOS può apparire come

  • 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

Il primo utente ha Internet Explorer 6, il secondo 9,51 Opera, Firefox e la terza.

Ora che sappiamo di più informazioni di quelle cui abbiamo veramente bisogno su computer del visitatore abbiamo bisogno di mettere le informazioni a un buon uso. Dire che si desidera scrivere il codice che viene visualizzato solo se l'utente è in esecuzione una qualsiasi versione di Internet Explorer. In questo caso si potrebbe fare così:

(’MSIE’,$visitorsOS)){ if (eregi ( 'MSIE', $ visitorsOS)) (

Codice che viene visualizzato solo se l'utente ha IE

)

else (

Codice che verrà visualizzato in TUTTI GLI ALTRI CASI

)

Io uso eregi, una espressione regolare tra maiuscole e minuscole partita invece di ereg, una espressione regolare tra maiuscole e minuscole partita. Non mi ricordo se lo faccio di paranoia, o se effettivamente ho trovato un caso in cui Internet Explorer identificato come MSIE. In entrambi i casi non eregi ferito in modo che nulla è ciò che io utilizzo. Volendo scrivere il codice per specifiche versioni di IE che richiedono solo una piccola modifica. invece di ... (eregi ( 'MSIE' ...) Vorrei usare qualcosa di simile (eregi ( 'MSIE 6.0' ...), se volevo solo il codice che compare per MSIE 6.0.