어떻게 방문자가 어디에서 지리적으로 PHP를 사용하는

2008년 9월 13일에 ShortLikeAFox에 의해 PHP에서 게시됨

만약 여러분이 웹사이트가 사용자의 지리적 대체 어디서부터 오는 PHP와 PEAR와이 가능하게하고 싶은 말이있어. 물리적 위치는 당신이 할 Net_Geo PEAR와 모듈이 설치되어 있는지 확인하십시오 당신이 필요로 가고있는 첫 번째 일은로 손님의 IP를 설정합니다. 만약 당신이 Net_Geo PEAR와 모듈이 없어, 당신은 그것을 확보하기 위해 PEAR와 패키지 관리자를 사용하려고합니다.

만약 자네가 어떻게 기본적으로 액세스를 허용하지 않는 계정에 PEAR와 설치에 대한 설명이 체크 아웃은 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/> 의 IP : <? PHP는 에코 ($ IP)을;?>에 <br/>
($geoData[ 'LAT' ]); ?> <br/> 위도 : <? PHP는 에코 ($ geoData [ 'LAT에']);?>에 <br/>
($geoData[ 'LONG' ]); ?> 경도 : <? PHP는 에코 ($ geoData [ '오랫동안']);?>
신청 <br/>
($geoData[ 'COUNTRY' ]); ?> <br/> 국가 : <? PHP는 에코 ($ geoData [ '나라']);?>에 <br/>
($geoData[ 'STATE' ]); ?> <br/> 주 : <? PHP는 에코 ($ geoData [ '상태']);?>에 <br/>
($geoData[ 'CITY' ]); ?> <br/> 도시 : <? PHP는 에코 ($ geoData [ '시티']);?>에 <br/>

이 코드가 작동시 :

의 IP : 72.14.193.67

위도 : 33.98

경도 : -118.45

국가 : 미국

주 : 캘리포니아

도시 : 마리나 델 레이

| 댓글

PHP 코드가 작동하는 방법을 포함하여 워드에 게시물

워드, 8 월 ShortLikeAFox으로 PHP는 17 일, 2008 년 게시됨

그래서 당신이 원하는 당신의 WordPress의 블로그 게시물과 페이지에서 PHP를 사용하실 수있습니다. 그건 아무 문제 없어요. 그냥 사용 <? PHP는 ... ... ..?>하지 않는 플러그인을 처음 설치하면 워드 화나게 만들 것입니다. 거기에이 기능을 제공하는 플러그인을 주장하는 몇 가지 있지만, 그 하나는 최고의 작품을 발견 Exec - PHP는. PHP 코드를 사용하려면 다음과 같이 시작하려면 :

  1. 다운로드 간부인 - PHP를
  2. 당신이 어떤을 통해 설치하는 걸어 나갈 것이다 readme 파일과 위의 (링크와 같은 플러그인이)
  3. 현재 그것을 사용하는 경우, 당신은 WYSIWYG 편집기를 해제해야합니다. , 사용자에게 가서 이렇게하려면 - 당신의 프로필을 사용하여 시각 편집자의 선택을 취소하면 확인란> 쓰기
  4. PHP 코드처럼 평소 : <? PHP를 쓰기 시작 ... 코드가 여기에 다닌다?>

그 모든 것들이 그것입니다!

| 댓글

작성 및 사용 방법에 동적으로 PHP로 변수의 이름

PHP에서 ShortLikeAFox에 의해 8 월 2008 년 17 게시됨

그럼 당신은 코드에 동적 변수 이름을 사용하고 싶습니다. 문제 없어. 당신 100 변수라고하자, dog0, dog1, dog2라는 ...., dog98, dog99. 왜 이런식으로 배열하는 대신 100 변수를 사용하고자하는 것이 내 능력 밖이다, 그러나 이것은 예를 들어, 상관 없어요. 당신은 다음을 사용할 수있는 빠른 루프에 이러한 변수를 설정하려면 :

0 ; $i < 100 ; $i ++ ){= 0 ($ 위해; $ i가 <100; $ 나 + +) (

; $ VariableName = "개는 $ i가";
$ $ VariableName = $ 난; / / 1, 2, 34, 등 34 개 $ $ $ dog1 세트 dog2 ....

)

지금의 당신이 모든 변수의 접근을 원한다고하자. 당신은 다음을 사용할 수있다 :

0 ; $i < 100 ; $i ++ ){= 0 ($ 위해; $ i가 <100; $ 나 + +) (

; $ 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

| 댓글

ISBN에 액세스하려면 어떻게 Intergrate 웹페이지 PHP를 사용하여

PHP에서 ShortLikeAFox에 의해 8 월 2008 년 12 게시됨

ISBN은 국제 표준 도서 번호 또는 개별 도서에 대한 정보를 찾는 데 사용될 수있는 유용한 식별자입니다. PHP는 그것을 행할 경우 만들어 귀하의 웹 애플 리케이션에 통합하려는 ISBN을 조회합니다.

1 단계 : ISBNdb.com 한 API는 사용자가 웹 주위의 ISBN 기록의 데이터베이스에 액세스할 수 있도록 만들었습니다. 여기에 자신의 API의 설명입니다 :

ISBNdb.com '다른 웹사이트와 독립형 애플 리케이션에 원격으로 액세스할 수 있도록 설계된 애플 리케이션 프로그래밍 인터페이스 (API) ISBNdb.com에 의해 2003 년 이후 데이터 수집의 방대한 컬렉션을 사용합니다. 이 글을 쓰는 중, 2005 년 7 월으로서, 데이터의 도서를 포함 약 1,800,000; 거의 3000000000000 도서관 기록; 주변 100 만 과목; 저자 및 발행인의 기록 도서관 데이터의 분석 과정을 거치게 수십만; 천만 이상의 실제 기록과 역사 가격.

먼저. 회원으로 등록해야합니다이 API를 사용하려면 그대로를 완료 초가 걸립니다. 이 후, 당신은 열쇠를 설정할 필요가있다. 열쇠를 직접 자신의 코드에서 ISBN을 데이터베이스에 접근할 수 있도록합니다. 웹사이트의 열쇠는 ISBNdb.com 쉽게 설정할 수있습니다.

2 단계 : 시작하는 데이터베이스와 상호 작용하는 코드를 작성 넌 지금. ISBN을 조회에 대한 요청이 이런식으로 생겼을 것이다 :

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

당신 XXXXXX의 장소에서 귀하의 액세스 키를 삽입합니다. $ isbnQuery 달러를 들여 isbnData 관심있는 ISBN 번호가 될 것이라고하는 XML 파일입니다. 귀하의 코드는 그것으로 무엇을 다루고있다 알려 드리기 위해이 데이터에 액세스하려면이 필요합니다. 이 작품은 같은 뭔가가 :

) ; $ xmldata = @ simplexml_load_file ($ isbnData) 또는 죽을 ( "로드된 파일 없음");

지금 당신과 개별 변수에 액세스할 수있는이 비슷한 전화 :

]->Title ; $ 제목 = $ xmData -> 도서 [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 -> 도서 [0] -> BookData [0] -> 제목;
]->AuthorsText ; $ 저자 = $ xmldata -> 도서 [0] -> BookData [0] -> AuthorsText;
]->PublisherText ; $ 발행인 = $ xmldata -> 도서 [0] -> BookData [0] -> PublisherText;

); ( "$ 타이틀에 <br/>") 에코;
); ( "$ 저자에 <br/>") 에코;
); ( "$ 게시자의 메아리에 <br/>");

/ /이 예제는 지문 :
/ / 그 노인과 바다
/ / 어니스트 헤밍웨이
/ / 뉴 요크 : Scribner 페이퍼백 소설, 1995.

?>

| 댓글

수동으로 삽입하는 방법을 그룹 사용자의 포럼 SMF로 PHP를 사용하는

SMF (간단한 기계 포럼), 7 월 ShortLikeAFox으로 PHP는 30 일, 2008 년 게시됨

이 입문서는 당신이 내 게시물에 익숙한 : 수동으로 삽입하는 방법 PHP를 사용하여 사용자에게 SMF 포럼.

최근 800 또는 정말 감동적의 도전에 직면 한 SMF 포럼에 데이터베이스에서 밴드. 문제가 움직일 때 그 첫 번째 게시물에 커버하지 않았어 만드는 몇 직면 :

  1. 밴드 이름은 캐릭터를 이동하여 문자에 대한 SMF 데이터베이스에 안전하게 보장되지 않았다. 그래서 이름이 일종의 함수를 수정 고용해야했다.
  2. 밴드의 암호를 필요가없습니다. 그래서 비밀 번호 세대의 일부 유형을 필요로 채용된다.

나는 모든 포럼에 들어간 밴드의 등록이 같은 약간 갔었 단계 :

밴드 데이터베이스 열기

(밴드) (

생성 비밀 번호

밴드 이름 바꾸기 "안전한"이름을 가진

사용자 삽입하는 데 필요한 정보를 잡아 생성

삽입 밴드로 smf_members

밴드 비밀 번호가 포함된 이메일을 보내기

)

유용한 정보가 포함되어 있던 밴드가 데이터베이스 :에서 제공했다, bandEmail, bandName과 bandWebsite

여기서 내가 사용한 비밀 번호를 생성 함수입니다 (blatently totallyphp.co.uk에서) :

함수 createRandomPassword () (

$ 문자 = "abcdefghijkmnopqrstuvwxyz023456789";

() * 1000000); srand (() microtime 두 번 () * 1000000);

$ i가 = 0;

$ = "패스;



($ 동안 <= 7) (

33; $ NUM 개의 = 랜드 () % 33;

$ tmp를 = substr ($ 문자, $ num과, 1);

$ 통과 = $ 패스. $ tmp를;

$ i가 + +;

)

$ 리턴 패스;

)

비밀 번호를 여기에 상대적으로 약한 만들어지만, 내 목적을 위해 충분히 좋다. 어떤 비밀 번호가 생성 기능을 여기서 잘 작동했다. 만약 그들이 그것을 변경하지 않기로에 대한 기억하고 있기 때문에 쉽게 그릴 수있을 것이다 회원이 하나를 선택했다.

어떻게해야 할지를 :

/ / 먼저 밴드를 데이터베이스에 연결
$ 사용자 = "bandUsername";
$ 호스트 = "bandHost";
$ mypassword는 = "bandPassword";
$ db_name = "bandDatabase";

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ mypassword"는) 또는 죽을 ( "서버")에 연결할 수없습니다;
("cannot select DB"); mysql_select_db ( "$ db_name") 또는 죽을 ( "") DB를 선택할 수없습니다;

/ / 이제 데이터베이스에서 모든 밴드의 잡아
$ 쿼리 = "선택 *에서 allBands";
$ 밴드 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2222b는");
$ userRows = mysql_num_rows ($ 밴드);

/ / 이제 smf DB를 연결할 수있습니다
$ 호스트 = "smfhost"; / / 호스트 이름
$ 사용자 = "smfuser; / / mysql의 사용자
$ mypassword는 = "smfpassword"; / / mysql의 비밀 번호
$ db_name = "smfdatabase"; / / 데이터베이스 이름

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ 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);

/ / 이제 우리는 루프를 통해 각 밴드가 필요

){= 0 ($ 위해; $ i가 <$ userRows; $ 나 + +) (

($bands)){ ($면 행 = mysql_fetch_assoc ($ 밴드)) (

/ / 압축을 풉니다 밴드 정보
추출할 ($ 행);
/ / 그 밴드에 대한 암호 만들기
$ realPassword = createRandomPassword ();
/ / 난 내 디버깅의 일환으로하고 bandname 이름과 비밀 번호를 메아리로 작동을 선택해서 볼 수있는 기능
에코 ( "에 <br/> bandName $ - $ realPassword");
$ newBand = "";
밴드 이름에 유효한 문자 valid_chars 우리와 일치하는 경우 $에서 볼거야 각 문자 / / 들어있다. 그건 우리가 없애려고하지 않는 밴드 이름을 잘라야
($bandName); $j ++ ){ ($있는 j = 0; $ j를 <나 strlen ($ bandName); $ j를 + +) (위한

($band[$j])); $ 임시직 = str_replace ($ valid_chars, "X"가, strtolower ($ 밴드 [$ j를]));
($ 만약 온도 == "X"가)

$ = $ newBand newBand. $ 밴드 [$ j를];

)
/ / 난 내가 옛날 이름과 비밀 번호를 메아리 같은 이유로 새 이름을 메아리
( "- $ newBand은") 에코;
/ / 우리는 새로운 밴드 이름이 .... 지금 우리가 DB에 삽입하는 데 필요한 정보를 buliding 시작하자 ...
$ = $ newBand 이용자;
$ = $ newBand realname; / / 내가 진짜 이름과 회원 이름 같은 설정합니다. 만약 그들이 원하는 대역을 변경할 수있습니다
$ emailAddress = $ bandEmail;
$ websiteUrl = $ bandWebsite; / / 이후로 난 그들을 입력할 수도있습니다뿐만 아니라 밴드의 '웹사이트가
$ = $ newBand websiteTitle;
$ = 1 is_activated;
$ ID_POST_GROUP = 4;
($memberName).$realPassword); //Password must be encrypted $ 비밀 번호 = sha1 (strtolower ($ 이용자). $ realPassword); / / 비밀 번호는 암호화되어야합니다

/ / SMF 데이터베이스에 동일한 이름을 가진 확신을 못하므로 회원 확인합니다. 우리가 실수로 사람을 두 번 입력하고 싶지 않아
$ 쿼리 = "선택 *에서"이용자의 '어디로 이용자 ='$ smf_members;
("Config Error 2222343242b"); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2222343242b은");
$ nrows = mysql_num_rows ($ 결과);

회원의 이름을 찾을 수있다면 / / 아무것도하지
($ nrows> 0) ()

다른 (

/ / 만약 사용자가 이미 포럼에 대한이므로 가입하지 않으면 이메일을 보내주십시오 ....
$ 쿼리 = "삽입 INTO를 smf_members (,, emailAddress, ID_POST_GROUP, websiteUrl passwd, websiteTitle) 값 ( '$ realname 이용자의 이용자 is_activated', '$'realname, '$'emailAddress, '$'is_activated, '$ ID_POST_GROUP' , '$ 비밀 번호', '$'websiteUrl, '$ websiteTitle') ";

("Config Error 2232 "); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "구성 오류 2232");

/ / 이제 우리는 이메일을 보낼 필요 밴드
달러 = $ emailAddress;
$ 주제 = "당신의 포럼에 사용자 이름과 비밀 번호";

/ /부터
$ 헤더 = "에서 : 나와 <me@mysite.com>";

/ / 귀하의 메시지
$ 메시지 .= "귀하의 로그인 및 비밀 번호를 아래에 나열되어있습니다. 당신도 언제든지 변경할 수있습니다. 만약 여러분이 포럼에 참여하고 싶지 않아, 아무 문제 없어요. 그냥 로그 인한 적이 그리고 아무 일도 일어나지 않은 것처럼 될 것입니다 .에 \ r \ n ";
$ 메시지 .= "아이디 : $ 이용자의 비밀 번호 : $ realPassword에 \ r \ n";

/ / 이메일을 보내
$ 보냄 = 메일 ($, $ 제목, $ 메시지, $ 헤더);
($ 보냄)

에코 ( "- 그래!");
/ / 이것이 우리 에코의 마지막 부분입니다. "- 예!" 이메일을 보낸 경우에만 인쇄됩니다. 그래서 전체 출력물 라인을 이런식으로 생겼을 것이다 :
/ / 아담 증오 - 4s6vsxag - AdamStrife - 그래!

)

)
)

| 댓글

수동으로 삽입하는 방법을 사용자에게 SMF 포럼에 PHP를 사용하는

SMF (간단한 기계 포럼), 7 월 ShortLikeAFox으로 PHP는 28 일, 2008 년 게시됨

이 구체적인 예를 SMF 1.1.5입니다. 나도 다른 버전과 함께 작동하지 않을 수도있습니다.

그래서 간단한 기계 포럼 소프트웨어를 실행하고 수동으로 사용자가 입력하고 싶어? 문제 없어. 저는이 문제를 매우 구체적인 것 같지만 알고있는 아이디어를 여기 Wordpress 포럼과 다른 데이터베이스와 같은 소프트웨어 패키지를 구동의 다른 유형에 적응이 될 수 있다고 설명했다. 전에 우리가 정확히이 일을 어떻게 들어가, 간단한 기계를 어떻게 사용자의 추적 포럼에서 살펴 봅시다. the SMF 데이터베이스에서는 테이블이라고합니다 smf_members. 구조 smf_members 이렇게 보입니다 :

유형 계열

열쇠 기본값 추가
ID_MEMBER mediumint (8) 서명 북서 PRI NULL은 auto_increment
이용자 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 북서
instantMessages smallint (5) 북서 0
unreadMessages smallint (5) 북서 0
buddy_list 텍스트 북서
pm_ignore_list 텍스트 북서
messageLabels 텍스트 북서
passwd varchar (64) 북서
emailAddress tinytext 북서
personalText tinytext 북서
성별 tinyint (4) 서명 북서 0
생년월일 날짜 북서 MUL 0001-01-01
websiteTitle tinytext 북서
websiteUrl tinytext 북서
위치 tinytext 북서
ICQ tinytext 북서
AIM에 varchar (16) 북서
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) 북서
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) 북서

필드는 우리에게 관심을 지불할 필요 :

  • 이용자 - 셀프 Explanitory.
  • dateRegistered -하지만, 필요하지 않는 경우 날짜를 기입하여 등록 1969년 12월 31일으로 표시됩니다. 날짜 획기적인 타임 스탬프로 저장됩니다. 네 머리에 타임 스탬프를 계산하는 방법을 아세요? 문제 없어. 내가 여기서 발견 무료 발전기를 사용합니다.
  • realname - 삽입해야한다. 난 그냥 여기를 반복했을 때 이용자 모르겠어요.
  • emailAddress - 셀프 Explanitory.
  • 이후 멤버를 수동으로 활성화하는 is_activated - 1로 설정해야합니다.
  • ID_POST_GROUP - I won’t lie. 난이 무엇인지 확실 하진 않지만, 항상 4로 설정하고있는 것 같다. 그래서 .... 난 항상 4로 설정합니다. 프로그램에 가장 좋은 방법은 아니지만, 어떻게 할 수 있나요?
  • passwd - 비밀 번호는 당신이 새로운 사용자주고 싶어. SMF 설명서도없이 어떻게 쳐다보는 입력 알아낼 불가능하다. 올바른 코드는 데이터베이스에 대한 SMF 비밀 번호를 암호화하는 방법이 이렇게 보입니다 :

($memberName).$password) $ passwd = sha1 (strtolower ($ 이용자). $ 암호)

코드의 위에 라인에서 $ 암호는 사용자의 실제 암호입니다.

어떻게해야 할지를 :

/ / 먼저, SMF 데이터베이스에 연결

$ 호스트 = "호스트명"; / / 호스트 이름
$ 사용자 = "사용자"; / / mysql의 사용자
$ mypassword는 = "암호"; / / mysql의 비밀 번호
$ db_name = "사용자"; / / 데이터베이스 이름

("cannot connect to server"); "호스트 ("$ mysql_connect, "$ username"을, "$ mypassword"는) 또는 죽을 ( "서버")에 연결할 수없습니다;
("cannot select DB"); mysql_select_db ( "$ db_name") 또는 죽을 ( "") DB를 선택할 수없습니다;

$ 이용자 = "아이언맨";
$ realname = "토니 스탁";
$ emailAddress = "ironMan@ironMan.com";
$ = 1 is_activated;
$ ID_POST_GROUP = 4;

$ 비밀 번호 = "Tony1234";

($memberName).$password); $ 비밀 번호 = sha1 (strtolower ($ 이용자). $ 암호);

$ = 1,216,951,200 dateRegistered; / / 2008년 7월 25일 오전 2시

$ 쿼리 = "삽입으로, '$'emailAddress, '$'is_activated, '$ realname', '$ 이용자'(,, emailAddress, ID_POST_GROUP, dateRegistered passwd is_activated realname) 이용자의 값 ( '$ smf_members ID_POST_GROUP', ' $ 비밀 번호 ','$ dateRegistered ') ";
("SMF Error 101.234 "); $ 결과 = mysql_query ($ 쿼리) 또는 죽을 ( "SMF 오류 101.234");

그 모든 것들이 그것입니다!

| 댓글

썸네일 이미지를 어떻게 PHP를 사용하게

함수에서, ShortLikeAFox으로 PHP를 2008년 7월 22일에 게시됨

그래서 당신은 주어진 이미지에서 축소판을 만드는 ... PHP는이 작업을 쉽게 싶어요. 내가 먼저 이미지를 관리할 수 있도록 사용자에 의해 전 사이트에 업로드를 다루는 아래의 함수를 썼다. 이 사이트에 업로드된 이미지 사진, pngs, 또는 GIF를, 그래서 셋 모두를 다루는 함수를 작성해야만했다 수있습니다. 이 코드는 원래 함수의 기반 webcheatsheet.com에서 발견

어떻게해야 할지를 :

함수 createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ 확장 / 구문 분석 경로

$ 정보 = pathinfo ($ pathToImages. $ fname);
/ /이 계속되는 경우에만이 JPEG 이미지입니다
($info['extension']) == ‘jpeg’) ) ((strtolower ($ 만약 정보 [ '확장']) == 'jpg로) | | (strtolower ($ 정보 ['확장 ']) =='jpeg)로)
(

/ /로드 이미지 및 이미지 크기를 얻을
아무리 달러 = ( "($ pathToImages)) ($ fname") imagecreatefromjpeg;
$ 너비 = imagesx ($ 아무리);
$ 높이 = imagesy ($ 아무리);

/ / 섬네일 크기를 계산
$ new_width = $ thumbWidth;
$ new_height = 바닥 ($ 높이 * ($ thumbWidth / $ 너비));

/ / 새 임시 이미지를 만들려면
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / 복사 및 크기를 낡은 이미지를 새로운 이미지로
imagecopyresized ($ tmp_img, $ 아무리, 0, 0, 0, 0, $ new_width, $ new_height, $ 너비, 높이 달러);

/ / 파일에 저장할 섬네일
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ 만약 정보 [ '확장']) == 'gif는')
(

/ /로드 이미지 및 이미지 크기를 얻을
아무리 달러 = imagecreatefromgif ( "($ pathToImages) ($ fname)");
$ 너비 = imagesx ($ 아무리);
$ 높이 = imagesy ($ 아무리);

/ / 섬네일 크기를 계산
$ new_width = $ thumbWidth;
$ new_height = 바닥 ($ 높이 * ($ thumbWidth / $ 너비));

/ / 새 임시 이미지를 만들려면
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / 복사 및 크기를 낡은 이미지를 새로운 이미지로
imagecopyresized ($ tmp_img, $ 아무리, 0, 0, 0, 0, $ new_width, $ new_height, $ 너비, 높이 달러);

/ / 파일에 저장할 섬네일
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ 만약 정보 [ '확장']) == 'png로')
(

/ /로드 이미지 및 이미지 크기를 얻을
아무리 달러 = ( "($ pathToImages)) ($ fname") imagecreatefrompng;
$ 너비 = imagesx ($ 아무리);
$ 높이 = imagesy ($ 아무리);

/ / 섬네일 크기를 계산
$ new_width = $ thumbWidth;
$ new_height = 바닥 ($ 높이 * ($ thumbWidth / $ 너비));

/ / 새 임시 이미지를 만들려면
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / 복사 및 크기를 낡은 이미지를 새로운 이미지로
imagecopyresized ($ tmp_img, $ 아무리, 0, 0, 0, 0, $ new_width, $ new_height, $ 너비, 높이 달러);

/ / 파일에 저장할 섬네일
imagepng ($ tmp_img "($ pathToThumbs) ($ fname)");

)

)

어떻게이 작품

함수 인자 createThumbs 4 걸립니다.

  • $ pathToImages -> 이미지 파일이 : / 가정 / 콘텐츠 / 사용자 / html과 / 목록 / 업로드처럼 보입니 다만 뭔가 들어있는 폴더의 경로는 /
  • $ fname -> 파일 이름 : pic1.gif, johnny.jpg, 등등 ...
  • $ pathToThumbs -> 당신은 당신은 믿나요되고 섬네일 이미지를 원하는 폴더 경로는 같은 경로로 달러가 될 pathToImages이 원하는 썸네일 이미지 때문에 원래의 이미지로 동일한 이름을 사용해야한다.
  • $ thumbWidth ->의 너비를 픽셀에있을 축소판 싶어요.

중요한 유념해야한다 여기서는이 기능, 파일 확장자를 확인하기보다, 그 이미지 파일을 전혀 악의가 포함되어 있는지 확인하는 다른 장소에서 아무 것도있다. 파일 createThumbs 이후 ()은 이미 그것을 따르고왔다 추정된다 업로드된 파일이 제대로 작동되었습니다.

제일 먼저 할 일이 createThumbs ()가 호출 pathinfo ()입니다. pathinfo () 배열로 경로의 부분이 나옵니다. 우리가 제대로 축소판을 만드는 파일의 확장자를해야이 우리에게 유용합니다. 만약 우리가 다루고있는 다음의 jpeg createThumbs () 수표를 볼 수있습니다. 원본 파일을 JPEG createThumbs있다면 새 이미지를 원래 이미지에 imagecreatefromjpeg 기반으로 만들어집니다 (). 다음 단계는이 이미지의 너비와 높이를 얻는 것도 한 방법이다 (imagesx (), imagesy ()). 그리고 원래의 너비와 높이 createThumbs의 비율 thumbWidth 달러 () 함수를 사용 축소판의 새로운 너비와 높이를 설정합니다. 이러한 새로운 createThumbs 사용 비율 ()은 같은 너비와 imagecreatetruecolor (). imagecopyresized () 이미지의 크기를하고 저장하는 데 사용됩니다 함께 축소판의 높이가 될 것이다 ""빈 이미지를 만들어 ""방금 만든 빈. imagecopyresized ()처럼 보이지만 변수가 많이 걸린다면 정말 그렇게 복잡하지되는 설명서를 한번보세요. 이제 진정한 색깔 섬네일 이미지가 모든 createThumbs으로 존재 할 필요는 JPEG로 파일을 변환입니다. 이 imagejpeg 할려면 ()이라고합니다.

그 기능은 사진을 위해 일하는 방법. 거기에 대한 최소한의 차이가있습니다. pngs. GIF를했다.

| 댓글

어떻게 브라우저의 특정 코드를 PHP로 작성해 함께

PHP에서 ShortLikeAFox 의해 2008년 7월 21일에 게시됨

그래서 당신은 오직 특정 브라우저에 나타나는 코드를 쓰고 싶어요 ...이 일을하려는 이유는 여러가지가있습니다. 나는 개인적으로이 일을하는 데 필요한 처음 포함할 때 특정 페이지에있는 mp3려고했던가 발생했습니다. 난 그렇게는 MP3 (인터넷 익스플로러, 파이어 폭스, 그리고 오페라)에 대한 테스트 브라우저에, 재생과 유효성이 동시에 코드를 작성할 수없습니다 어떤 이유로 들어있다. 만약 내가 정확히 기억한다면, Internet Explorer가이 문제의 원인이었다. 함께하면 사용자가 IE를 사용했다는 걸 찾으려면 시간이 좀 PHP를 사용하고 온 당시 내가 그런 경우였다 솔루션은 MP3 이외에 - 유효한 코드를 내장하는 것이다.

검사기는 W3C가 IE로 자신을 식별하기 때문에 결코이 솔루션은 MP3 재생 페이지 언제나 항상 제대로 검증을, 이끌었다. 이것은 W3C의 준수에 도달하는 가장 윤리적인 방법이 아닐지도 모르지만 그것을 작동합니다.

다른 시간 전 브라우저에 특정 코드를 작성할 필요도 기억이 제대로되면 내. png로 이미지가 표시되지 않는 문제는 IE 6이다. 내 주위 검색좀하고 문제를 해결하는 몇 가지 해결책을 찾았지만, 둘 다 내 페이지에 대한 전반적인 계층 위치를 어지럽히 끝났다. 그 문제를 해결하는 대신, 나는 빠른 솔루션과 함께 가서 표시하기로했다. GIF를하면 사용자가 IE 6이됐다. 만약 사용자가 또 다른 브라우저를했다. 나는 그에게 너무 나쁘다고 생각 png로 문제가있다.

어떻게 할 일 :

조금 선을 처음 당신의 코드를 작성하여 사용자의 브라우저가 어떻게 알아낼 필요가있다. 여기서는 PHP가 어떻게 할 수있습니다 :

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

여기의 visitorsOS $ 3 예는 무엇처럼 보이게 할 수

  • 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; 와줘)
  • Mozilla/5.0 (윈도우;으로 U;는 Windows NT 5.1; ko - 사이트; RV가 : 1.9) Gecko/2008052906 파이어 폭스

첫 번째 사용자가 Internet Explorer 6을하고있다, 오페라 9.51, 그리고 파이어 폭스 3 번째.

우리보다 우리를 넣어야 정말 필요 이제는 방문자의 컴퓨터에 대한 자세한 내용을 알고 그 정보를 잘 활용합니다. 만약 사용자가 Internet Explorer의 모든 버전을 실행하는 코드를 작성하고 싶다에만 나타납니다. 당신이 할 것이라고이 경우 :

(’MSIE’,$visitorsOS)){ (eregi ( 'MSIE의', $ visitorsOS)) (면

코드가 사용자의 경우에만 게재됩니다 IE를하고있다

)

다른 (

다른 모든 경우에 코드가 표시됩니다

)

대신 ereg, 민감한 정규식과 일치하는 경우와 일치 eregi, 대소문자 정규 표현식을 사용합니다. 만약이 편집증 중에, 또는 실제로 사건이있다면 어디로 신원이 발견 Internet Explorer 자체 MSIE의 기억이 안나요. 그래서 내가 무엇을 사용하는 경우이든 eregi에서 아무것도 아프지 않을거야. 작은 변화만을 요구하는 것이 인터넷 익스플로러의 특정 버전에 대한 코드를 작성 꿔. 대신 ... 만일 내가만이 등장 MSIE의 6.0에 대한 코드를 원한 (eregi ( 'MSIE의'...) 나는 (eregi ( 'MSIE의 6.0'...) 같은 것을 사용합니다.