'PHP'에 해당되는 글 6건

PHP



1. GeoIP.dat 다운로드 - http://www.maxmind.com/app/geolitecountry

2. geoip.inc 다운로드 -  https://github.com/maxmind/geoip-api-php -> 

 https://github.com/maxmind/geoip-api-php/blob/master/src/geoip.inc

 


 Download links

 Database

 Binary / gzip

 GeoLite Country

 Download

 GeoLite Country IPv6

 Download

 GeoLite City

 Download

 GeoLite City IPv6 (Beta)

 Download

 GeoLite ASN

 Download

 GeoLite ASN IPv6

 Download


GeoIP Legacy Downloadable Databases

<? include("./geoip.inc");


$gi = geoip_open("./GeoIP.dat", GEOIP_STANDARD); // GeoIP.dat 파일 주소

$ip = $_SERVER[REMOTE_ADDR];

  

if (geoip_country_code_by_addr($gi, $ip) == "JP") {  echo '일본' ;  }  


echo geoip_country_code_by_addr($gi, $ip)."<br>";

echo geoip_country_name_by_addr($gi, $ip);

geoip_close($gi);

?>


아래는 whois 를 통해 실시간으로 체크하는 방법이다.


<?

 $domain = "216.255.255.255"; //북미

 $fp = fsockopen("whois.nida.or.kr",43);

 if($fp){

  fputs($fp,"$domain\n");

  while(!feof($fp)){

   $result .= fgets($fp,80);

  }


  if(ereg("whois\.arin\.net",$result)){

   echo "북미<br>";

  }else if(ereg("whois\.apnic\.net",$result)){

   echo "해외<br>";

  }else{

   echo "국내<br>";

  }


  $result = nl2br($result);

  echo $result;

 }else{

  echo "fail";

 }

?>


0 0

PHP


자료 출처 : http://technol0gic.tistory.com/261



JSON

(제이슨, JavaScript Object Notation)은, 인터넷에서 자료를 주고 받을 때 그 자료를 표현하는 방법이다.


- 출처 : 위키백과


DB에 배열 따위를 저장하고 싶을 때 JSON으로 배열을 인코딩 해줘서 스트링 데이터로 만들고 DB에 저장하면 간편하다. DB에는 php에서의 배열 변수같은 것을 저장할 수 없기에 보통 나는 JSON으로 인코딩 해 준다음 배열로 저장한다.


php에서는 JSON 형식으로 인코딩 하거나 디코딩 하는 함수를 기본적으로 제공해주는데,


json_encode 와 json_decode 함수이다.


source code:

<?
    $array = array("A""B""C");
    $result = json_encode($array);
    echo($result);
?>


result :

["A","B","C"]


source code:

<?
    $array['name'] = array("A""B""C");
    $result = json_encode($array);
    echo($result);
?>


result :

{"name":["A","B","C"]}


연관배열을 사용하면, 이런 결과를 볼 수 있다.


source code:

<?
    $string = '["A","B","C"]';
    $result = json_decode($string);
    print_r($result);
?>


result :

Array ( [0] => A [1] => B [2] => C )


print_r 은 배열을 시각적으로 보여주는 함수이다. JSON형태의 스트링 데이터를 변수에 넣어줘서, JSON 디코딩을 해줘서 반환된 배열을출력한 결과이다. 정상적으로 배열로 변환되었다.


그런데 가끔 배열로 반환이 안되고 stdClass 라는 하나의 오브젝트로 반환되는 경우가 있는데,


source code:

<?
    $string = '["A","B","C"]';
    $result = json_decode($string, 1);
    print_r($result);
?>


result :

Array ( [0] => A [1] => B [2] => C )


json_decode 에서 2번째 인자에 true 값을 넣어준다면, 정상적으로 배열 형태로 변환되어 반환된다.

0 0

PHP



생존본능 블로그에서 가져왔습니다. http://mbseo.wo.tc/36


Facebook에서는 정보를 주소에 지정하여 아래와 값이 값을 전달하여 줍니다.

 http://~~~~~~~~~~~~~~~~~~~

 라는 주소롤 이동하면 아래와같은 정보가 출력되게 됩니다.
 

{
   "id": "220439",
   "name": "Bret Taylor",
   "first_name": "Bret",
   "last_name": "Taylor",
   "link": "http://www.facebook.com/btaylor",
   "username": "btaylor",
   "gender": "male",
   "locale": "en_US"
}

 

 친구들이나 기본 정보값을 말이죠.

 하지만 위 정보를 이용하고 싶다고 Json으로 그냥 주소 값을 읽으면

 Json은 주소안에있는 정보를 읽는것이 아니라 "http://~~" 라는 주소를 읽게 될것입니다.



 그래서 이때 필요한것이  ' file_get_contents ' 같은 함수를 사용하여야 합니다.

 사용법은 참 쉽습니다.

 


$url = '주소';
echo file_get_contents($url);
 

 

 위와같이 주소만 지정해 주면 아무할일이 없습니다.

 하지만...저는 이렇게 쉽게가면 안된다고 오류를 발생시켜주시네요..

 file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /home/hosting_users/mbs723/www/game/numberNumber/index.php on line 65



 허울...이건 먼말이여 file_get_contents()가 비활성화 됐다고?

 음음...맨날 오류없이 한번에 넘어가는 적이 없네요.ㅠ

 이럴경우에는 file_get_contents() 함수를 서버쪽에서 열어주지 않아서 발생하게됩니다.

 보통 
file_get_contents()은 url뿐만 아니라 파일 읽기도 가능하기때문에 닫아놓지 않았나 싶은데요

 그럴때는 curl을 사용하면 됩니다.

 사용법은 아래처럼 사용하면 됩니다.
  

$url = 'https://graph.facebook.com/btaylor';

$ch = curl_init();


curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$g = curl_exec($ch);

curl_close($ch);

echo $g;


 그러면 화면에 정상적으로 출력되시는 것을 확인할수있습니다.

 하지만 매번 이런식으로 쓰면 귀찮겠죠?

 그래서 함수를 만들었습니다.

 

 

 위 파일을 받으신후 사용할 위치에 위치시키시면 됩니다.

  저같은 경우에는 같은위치에 위치시키겠습니다.

 
 이후에 아래 코드를 추가해주시면 됩니다.

 

include_once 'Curl.php';

$url = 'https://graph.facebook.com/btaylor';


echo curl($url);

 
 그냥 include_once이후 curl 함수만 호출하면 정상적으로 출력되는것을 확인할수있습니다.

 

 


 이후 Json를 사용하여 값을 object로 만들어주면 끝나게 됩니다.~

0 0

PHP
date("Y/m/d");
//2014/03/28


date 함수를 이용해서 인자로 포맷을 넣어주면, 넣어준 포맷대로 날짜와 시간을 출력해준다.


대소문자를 구분하니 주의해주자.


일(Day) 의 표현



d

일(Day)를 나타내며, 자릿수가 하나면 앞에 0이 붙는다. 

01, 02 ... 30, 31 

j

일(Day)를 나타내며, 자릿수가 하나라도 0이 붙지 않는다.

1, 2 ... 30, 31

D

요일을 영어로 3글자로 축약 후 나타낸다.  

Mon, Tue  

l

(L의 소문자)

D와 다르게 요일을 축약형이 아닌 완전한 단어로 나타낸다. 

Monday, Tuesday 

 N

(php 5.1)

요일을 숫자로 나타낸다.

월요일이면 1, 일요일이면 7 

1, 2, 3 ... 7 

 w

 요일을 숫자로 나타낸다.

단 일요일을 0으로 나타낸다.

0, 1, 2 ... 6 

 z

 해당 년도의 일차를 나타낸다.

1년 365일중 오늘이 며칠인지 나타냄.

 31, 155, 279



주(Week) 의 표현



 W

오늘이 몇주차인지 나타낸다. 

10, 25, 30 



월(Month) 의 표현



 F

월을 완전한 영단어로 나타낸다. 

Jenuary, February

 m

월(Month)을 나타내며, 자릿수가 하나면 앞에 0이 붙는다.  

01, 02 ... 12 

 M

월을 축약한 영단어로 나타낸다.

 Jan, Feb

 n

0이 붙지 않게 월(Month)를 나타낸다. 

1, 2 ... 12 

 t

 주어진 월의 총 일수를 나타낸다.

 31



년(Year) 의 표현



L

윤년 여부를 나타낸다.

(윤년이면 1, 아니면 0)

1, 0 

Y

연도를 완벽한 숫자를 표현한다. 

2013, 2014 

y

(php 5.1)

연도의 끝자리 두글자만 표현한다. 

 13, 14

o

Y 와 같은데, 주차(W)가 이전 해 또는 그 다음 해에

해당하면 그 연도를 나타낸다.

2013, 2014 



시간(Time) 의 표현



a

오전과 오후를 소문자로 나타낸다.

am, pm

A

오전과 오후를 대문자로 나타낸다.

AM, PM

g

0이 붙지 않는 시간을 숫자로 나타낸다.

(12시간 제)

1, 5, 12

G

0이 붙지 않는 시간을 숫자로 나타낸다.

(24시간 제) 

1, 12, 17

h

0이 붙는 시간을 숫자로 나타낸다.

(12시간 제)

01, 05, 12

H

 0이 붙는 시간을 숫자로 나타낸다.

(24시간 제)

01, 12, 17

i

0이 붙는 분을 숫자로 나타낸다.

00, 01, 59 

s

0이 붙는 초를 숫자로 나타낸다.

00, 01, 59 

u

마이크로초를 나타낸다.

12345


참고사이트 : http://technol0gic.tistory.com/153


0 0

PHP

1. 문자열을 단어 기준으로 쪼개어 배열변수에 저장
$배열변수=explode('구분문자','쪼갤 문자열');

 

 

 

2. 배열의 요소를 하나의 문자열로 결합
$변수=implode('결합문자',$배열변수);

 

 

 

3. 문자열의 찾아 바꾸기
$변수=str_replace('교체할문자열', '대체문자열', '원본문자열');
원본 문자열에서 교체할 문자열을 찾아 대체 문자열로 모두 변경해준다.

 

 

 

4. 문자열의 일부 추출
substr('원본문자열', start, length);
start가 양수이면 앞에서부터 몇번째이고, 음수이면 뒤에서부터 몇번째가 됨, 0부터 시작 문자

 

 

 

5. mysql의 substring() 함수
select substring(컬럼명, 1, 100) from 테이블명;
데이터 추출 단계에서 원하는 글자수만 추출 가능, 1부터 시작 문자

 

 

 

6. 문자열이 정규식의 패턴과 일치하는지 검사
preg_match('정규표현식','문자열');
일치하면 1, 일치하지 않으면 0을 반환

 

 

 

7. 유효한 데이터 패턴을 하나의 패턴으로 표준화
$변수=preg_replace('패턴', '대체문자열', '원본문자열');
원본 문자열에서 패턴에 해당하는 문자열을 찾아 대체 문자열로 교체한다.

 

 

 

8. 문자열 안에서 문자열 찾기
strstr(문자열변수, 찾을 문자열);
문자열 변수에서 찾을 문자열이 있으면 해당 문자열을 포함한 이후 문자열을 리턴하고
일치하는 문자열이 없을 경우 false를 리턴한다.

 

 

 

9. 날짜 함수


$day의 하루 전 날짜 
date("Y-m-d", strtotime($day."-1 day"));

$today = date('Y-m-d', time(0));
$yesterday = date('Y-m-d', mktime(0,0,0,date('m') , date('d')-1, date('Y'))); 
$tomorrow = date('Y-m-d', mktime(0,0,0,date('m') , date('d')+1, date('Y')));

 

날짜 만들기
$str = mktime(시간, 분, 초, 월, 일, 년);

 

만든 날짜 원하는 형식으로 표시하기
date(아래 인수, 날짜데이터)  예 date('l', $str);  //해당하는 날짜의 요일이 구해진다.
a : am, pm 
A : AM,PM 
d : 2자리 정수의 날짜 형태 
D : 요일의 앞 3글자 (Fri, Thu, Tue ... ) 
F : 해당 달의 이름 형태 (March, December, ... ) 
h : 2자리 정수의 시간 (12시간 이내) 
H : 2자리 정수의 시간(24시간) 
i : 2자리 정수의 분 
l : 해당 날의 요일 (Friday, Thursday ... ) 
m : 해당 달의 2자리 정수 형태 
M : 해당하는 달의 이름 앞 3글자 (Jan, Dec, ... ) 
s : 정수형의 초 
T : 해당하는 달에 날이 몇일까지 있는지 (28,29,30,31) 
Y : 해당 년의 4자리 정수 형태 (2013) 
y : 해당 년의 2자리 정수 형태 (01) 
z : 해당 년 1월 1일부터 몇일째 날인지

 

예)
$date='2013-03-06 19:23:40'
$date = substr($data, 0, 10); //앞의 10글자(날짜 부분)만 따오고
$str = explode('-', $date); //'-' 기호로 분리시켜서 배열 변수에 저장한 후
$date = date('M d, Y (D)', mktime(0, 0, 0, $str[1], $str[2], $str[0])); //$str[0]는 년도, $str[1]는 월, $str[2]는 일
//date() 함수와 mktime() 함수를 이용해서 날짜를 원하는 형태로 만들어주게 된다.

 

 


10. textarea 폼의 엔터 적용 함수
nl2br(textarea 값)


참고사이트 : http://yslife.tistory.com

0 0

1 2
블로그 이미지

www.100479.net

붉은양말