'php'에 해당되는 글 2건

  1. 2008.03.12 [PHP]세션 에러 - Cannot send session cache limiter
  2. 2007.12.28 php.net
Programing/php2008. 3. 12. 17:17
Warning: session_start(): Cannot send session cache limiter - headers already sent

헤더를 다루는 구문은 그 전에 어떤 문자도 출력되어서는 안됩니다.

그러나, session_start() 또는 header()를 php의 첫 줄에 넣어도 에러가 뜰 경우
PHP.INI 파일에서 output_buffering을 On으로 바꾼 후 아파치를 재시작하라.

output_buffering = On

'Programing > php' 카테고리의 다른 글

php.net  (0) 2007.12.28
Posted by aspirinirony
Programing/php2007. 12. 28. 22:47

php(Hypertext Preprocessor)


php web site http://www.php.net


php는 웹 프로그래밍을 할수 있는 오픈소스 서버 사이드 스크립팅 언어


project language code % php code 70%, html/dhtml/xhtml/xml 25%, Javascript 5% 가 대세였지만 현재는 Javascript가 40%에 달할 만큼 A-jax에 의한 site language code가 바뀌였다. 그리고 하나 더하면 xml도 빠질수 없다.


php는 1994sus Rasmus Lerdorf의 개인 project에 의해 시작되었으며, 대중성을 확보하기 시작하면서 6명의 개발자에 의해 다시 쓰여지게 된 것이 php3.0이다.

php3.0dms 1998년 6월에 나왔으며, 빠르게 대중성을 확보하면서 많은 웹사이트에 사용되기 시작했다. 대표적으로 Mitsubishi, Redhat, Der Spiegel, Mp3-Lycos, Ericsson and NASA 같은 사이트이다.

php는 JAVA나 C, Perl을 합쳐 놓은 듯한 형태이다. 문법 구조는 C와 비슷하다.


php는 수학 계산, 네트워크 및 메일과 정규 표현식을 사용하는 능력이 뛰어나다. php의 가장 강력한 특징은 다양한 데이터베이스를 지원한다는 것으로 데이베이스를 연결하여 쓰기도 상당히 쉬우며 대부분의 대중적인 데이터베이스인 MySQL(오픈 무료), Oracle, Sybase, mSQL, Generic ODBC, and PostgreSQL, Microsoft SQL Server 등을 지원한다. 그중에서 가장많이 쓰는 것이 MySQL인데 같은 무료라 궁합이 더욱 잘맞는다. (다른 언어들도 ODBC로 어떠한 db를 연결하여 사용할수있다.)


php에서 가장 강력하다고 할수 있는 것은 무료이며 다음으로 거의 모든 운영체제를 지원한다이다.

php는 객체지향 언어라는 점에서 다른 html/Javascript와는 또다른 언어의 서버사이드스크립팅언어이다.(Javascript도 어느정도는 객체지향적이지만)


php의 특징을 굳이 뽑자면 (다른 프로래밍언어도 마찬가지이지만)

1 거의 모든 운영체제를 지원 (UNIX, Windows. Linux, Mac) windows에서 만든 소스와 linux에서 만든소스가 90%이상  동일하게 수행된다.

2 무료  (http://kldp.org)

3 속도가 빠르다(이건 뭐 다른 것과 그리 차이있지 않는 것 같다 .net의 경우 php보다 100배는 빠르다)

하지만 php와 cgi와 VS하면 php가 우세 cgi는 처리하는 값이 사용자 수에 따라 같이 생기기 때문에 사용자 수만 큼 프로세스가 증가한다. php는 php묘듈으 Apache가 가지고 있기 때문에 소스 코드를 바로 사용할수 있어 php 해석 엔진이 아파치에 탑재되어 하나의 프로세스로만 작동할 뿐이며  그 만큼 서버에 부하가 덜 걸린다. Apache서버는 재처두고 트랙픽은 어떻게 할까? 고민...

 

4 대중적인 데이터베이스(MySQL이 대표적)를 지원

php가 지원하는 db

Oracle, Adabas D, Sybase, FilePro, mSQL, MySQL, Velocis, Informix, Solid, DBase, ODBC, Unix dbm, PostgreSQL

php자체에서 이들을 부를 수 있는 함수(method)가 존재하기 때문에 단지 함수명을 사용함으로써 그들을 사용할수 있게 된다.

 

5 소스 코드가 쉽다.

php 문법은 C를 닮았다. 그렇게에 C를 알면 더욱 쉽다. html 코드에 같이 사용되는 스크립트 언어이 때문에 처음 접하는 사라이라도 어렵지 않다. 단지 만 넣으면 되니까?

 

Ex code)

 for ($i=1;$i<10;$i++)

{

 $b = $b + $i;

printf( "%d

",$i);

}

?>

얼마나 쉬운가..?

 

6 함수 언어이다. 서버스크립트중 (함수아닌건 어떤거지?)

객체지향언어라면 함수이다. php는 함수가 많다. 아직도 만들고 있다. 젠장(php 5.2가 릴리즈되던데)

함수가 만다는것은 그만큼 프로그램머를 편하게 하지만 머리아프게도 한다.

Sample로 mail form

mail("atlantishunter@hanmail.net","제목","내용");

?>

이외에도 db 지운함수와 GD 라이브러리르 토해 이미지를 생성하는 함수들 또한 유용하다.

 

7 php 언어는 변화할 수 있는 언어이며 지금현재도 발전하고 있다.

php는 오픈소스이다. 실력만 된다면 php를 BASIC-PHP로도 바꿀수 있다.  실력이 되어야 한다.

 

8 100% web 전용 이다.

이것이 php의 가장 단점이다. java , C처럼 어플리케이션 프로그래밍을 할수 없다. php가 웹에서만 사용할 수 있기에 소스가 간결하지만 C나 java 는 php보다 더욱 강력한 힘을 낼수 있다.


php vs asp vs java vs .net


asp는 ms에서 개발한 web전용 스크립트 언어이다. cgi의 어려움을 탈피하고자 만들어진 쉬운 스크립트 언어로 1996년 발표한 이래 꾸준한 증가세를 보이며 준 프로젝트에 많이 사용된다. 간단한 스크립트 만으로도 동적인 웹 페이지를 구현하지만 윈도우 OS 아래에서만 동작한 다는 것이 단점. php는 개인에 의해 개발 된 언어를 개발자들이 모여서 만들어서인지 1997년 php3.0이 나오면서 모든 운영체제에서 모든 데이터베이스를 연결하여 동작하는 막강함(?)을 가지는 반면에 초보들의 입문이론에 맞지 않게 설치가 어렵고 프로그래밍을 배워야 한다.(?) asp는 안그런가? 그리고 asp도 리눅스에서 동작할수 있다.


php와 asp는 둘다 서버 사이드 스크립트이다. 서버사이드 스크립트란 html소스사이데 끼어 들어가는 서버 스크립트언어를 이야기 하는데 .net에 경우 별도의 cs 스페이스 클래스 공간이 있어 이를 연동하며 사용한다. java의 jsp도 마찬가지이다. 그럼 javascrip는 이건 클라이언트에서 동작하는 스크립트이다. 스크립트 동적인 event에서 제어할수 있는 함수를 내포한 언어를 지칭할때 사용하는건가(?)  javascript는 소스가 보이지만 asp 나 php등의 서버 스크립트는 서버단에서 html소스로 인코딩되어 뿌리기 때문에 소스? 볼수 없다.

php와 asp는 웹 전용 프로그래밍 언어이다. 이 둘의 장단점은


운영체제에서  asp는 윈도우, php는 모든 운영체제

 

에디터는 asp는 비주얼인터데브나 비주얼스튜디오 , php는 마땅한 editor가 없다

 

DBMS asp는 윈도우 하에서 동작하는 데이터베이스 서버 MS-SQL, php는 모든 db

 

webserver는 asp의 경우 IIS 나 PWS 하에서만 동작한다. linux에서 사용 가능한 asp도 있기는 하지만 php의 경우 windows 의 IIS,PWS 뿐 아니라 거의 모든 OS의 web server의 모든 DB에서 사용가능하다.

 

사용언어 asp는 객체를 지원하며, VBScript!나 Javscript를 사용하여 프로그램을 설계해야 한다. php는 자체가 함수 언어이며 c언어와 비슷한 문법의 프로그래밍을 통해 설계한다. 그리하여 프로그래밍을 배우지 않은 user의 경우 db 연동부분을 넘어서지도 못하고 포기하는 일이 많다.

 

속도 asp와 php는 속도는 단순한 스크립트만을 비교하면 asp가 빠르다. 그러나 db와의 연동며에서 php도 빨랐다. 하지만 ms-sql의 성장으로 asp가 빠르다 . 하지만 php의 도 mysql의 가벼움을 등에 업고 빠르다.

 

php와 JAVA(jsp), C#(asp.net)을 비교하는 것은 참새와 황새이다. 비교가 될수 없다. 생산성면이나 가격면이나 기능, 성능에서 차원이 틀리다.


현재까지의 php는 php5.2.3 Released 되었다.(2007.07.02 기준)

현재 내가 배우는 부분은 4.0 왜(?) 아직까지도 많은 많은 웹 호스팅 서버가 지원하는 것이 php4.0가 대부분이니까..


php3.0에서 php4.0으로 발전하면서 추가되거나 개선된 기능으로

확장된 api모듈

윈도우 상에서 COM/DCOM 지원

asp에서만 가능하던 COM 기능을 php4.0에서도 사용 가능하게 되었다.

FTP지원

원격 FTP상에서 파일의 저장, 삭제가 가능하게 되었다.

IIS의 ISAPI 지원

ISAPI 외에 NSAPI(AOLerver)도 지원한다.

다양한 함수 추가 지원

array_count_values(), eval!(), foreach(), include(), ob_end_clean(), ob_end_flush()등등

효과적인 메모리 사용

3.0에 비해 효과적으로 메모리를 사용함으로써 속도의 향상과 메모리의 능률화를 가져왔다.

네이티브 자바 지원

간단한 파라미터를 사용하여 자바 개체들의 메소드를 작동시킬 수 있게 되었다.

HTTP 세션 지원

3.0은 사용자가 직접 세션을 만들었으나, 전자상거래에 효과적으로 쓰일수 있는 세션이 PHP4.0에서 자체적으로 지원된다.


국내 php사이트를 알아볼수 있는 방법

http://www.netcraft.com/whats/에서 국내 사이트를 넣으면 된다.

naver. sayclub. sbs , hanmir.com , myseek.net, infomail.co.kr, emag21.com, ezpaper.com. pricekiss.com 등이 있다.

'Programing > php' 카테고리의 다른 글

[PHP]세션 에러 - Cannot send session cache limiter  (0) 2008.03.12
Posted by aspirinirony