PHP 따옴표

echo(“안녕하세요.”);
echo(‘안녕하세요.’);
echo “안녕하세요.”;
echo ‘안녕하세요.’;

모두 PHP에서 지원되는 문법입니다. 어떻게 사용하셔도 상관이 없답니다.

참고로 큰따옴표(“) 와 작은 따옴표(‘) 는 차이가 좀 있습니다.
큰 따옴표로 둘러싸여진 내용안에 변수가 있을 경우 변수가 가지고 있는 값으로 치완되서 출력이 됩니다. 하지만 작은 따옴표로 둘러싸여져 있을경우는 모든 것을 문자로 생각하고 그냥 출력한답니다. 아래 예제를 보세요.

$a = “방갑습니다.”;

echo “안녕하세요. $a”; // 출력 : 안녕하세요. 방갑습니다.
echo ‘안녕하세요. $a’; // 출력 : 안녕하세요. $a

웹페이지 -> 엑셀 파일 형식으로 만들기

웹페이지 상의 문서를 엑셀이나, 파워포인트, 위드 문서로 변환해 줘야 되는 경우 아래와 같은 방법을 쓰면 상당히 쉽게 해결이 되지요.

만약에 엑셀 파일로 변환을 하고 싶으시면
header(“Content-Type: application/vnd.ms-excel”);
?>
저 부분을 태그 앞에 넣으면 끝나지요.
저 페이지가 호출이 되면 오피스가 깔려있는 사용자들은 저장할것인지 그냥 열것인지를 물어보구여, 안깔려 있는 사용자들은 파일을 다운받을수 있게 되지요.

그럼 워드 파일은
header(“Content-Type: application/msword”);
?>

파워포인트 역시 같은 방법으로
header(“Content-Type: application/vnd.ms-powerpoint”);
?>

그럼 마지막으로 ASP에서는
<%
Response.Buffer = TRUE
Response.ContentType = “application/vnd.ms-excel”
%>

나머지는 응용이 가능하시겠지여?
알고보면 상당히 쉬운방법인데 저 방법을 몰라서 고민하시는 분들이 꽤 되시더라구요.

그럼 도움이 되시길. ^^

다음은 header 내용을 변경해서 excel로 바꾸어 주는 구문입니다.

* excel.php

header(“Content-type: application/vnd.ms-excel”);
header(“Content-Disposition: attachment; filename=test.xls”);
header(“Content-Description: PHP4 Generated Data”);

테스트1 테스트1 테스트1 테스트1
테스트2 테스트2 테스트2 테스트2

실행시켜보세요. 어떻게 되죠? test.xls 이름으로 excel 화일이 다운로드 되죠.
혹 DB내용을 excel형태로 출력해야될 때 유용할거 같습니다.

# JSP쪽 코드
<%@ page contentType=”application/vnd.ms-excel;charset=euc-kr” %>
<%
response.setHeader(“Content-Disposition”, “attachment; filename=저장될파일명.xls”);
response.setHeader(“Content-Description”, “JSP Generated Data”);
%>
이하 HTML 태그…

웹 브라우저에서 본 모습과 엑셀 문서의 모습을 보면 다음과 같을 것이다.

Calls for Accounting

Click View to go to the call you would like to view.

Total records returned:3

View Open Date Call Status First Name Last Name Extension Assigned To Summary
View 04/19/00 9497 OPEN Dan Dajarnatt 3405 GMARTINEZ pls schedule appt to discuss hard/soft needs
View 05/04/00 9607 OPEN Dan Dajarnatt 3405 GMARTINEZ Upgrade Outlook 98 to 2000?
View 07/17/00 10070 OPEN Dan Dajarnatt 3405 TOM New Hires and Terminations

주민번호 유효성검사

PHP
// 주민등록번호 유효성 검사: 올바른 경우 true, 틀린 경우 false 반환
function resnoCheck($resno1, $resno2) {
$resno = $resno1 . $resno2;

// 형태 검사: 총 13자리의 숫자, 7번째는 1..4의 값을 가짐
if (!ereg(‘^[[:digit:]]{6}[1-4][[:digit:]]{6}$’, $resno))
return false;

// 날짜 유효성 검사
$birthYear = (‘2′ >= $resno[6]) ? ’19’ : ’20’;
$birthYear += substr($resno, 0, 2);
$birthMonth = substr($resno, 2, 2);
$birthDate = substr($resno, 4, 2);
if (!checkdate($birthMonth, $birthDate, $birthYear))
return false;

// Checksum 코드의 유효성 검사
for ($i = 0; $i < 13; $i++) $buf[$i] = (int) $resno[$i];
$multipliers = array(2,3,4,5,6,7,8,9,2,3,4,5);
for ($i = $sum = 0; $i < 12; $i++) $sum += ($buf[$i] *= $multipliers[$i]);
if ((11 – ($sum % 11)) % 10 != $buf[12])
return false;

// 모든 검사를 통과하면 유효한 주민등록번호임
return true;
}
?>

정규식

정규식 UserPreferences

제목 도움말 찾기 주제분류 바뀐글
——————————————————————————–
일반인 수준의 정의 : 문자열을 검색하기 위해 사용되는 일종의 언어
예컨데, “이상한나라의앨리스?”라는 동화의 내용이 모두 수록된 텍스트 화일이 있다고 할 때, 거기서 walking, walked, walks 등의 walk로 시작하는 모든 단어를 찾고 싶다고 하자. 이런 자신이 찾고 싶은 대상을 나타내는데에 정규식이 사용될 수 있다. 여기서 walk로 시작하는 모든 단어는 walk[a-z]*가 된다. 괄호안의 a-z는 알파벳 a에서 z 사이의 임의의 문자가 올 수 있음을 나타내고 바로 뒤의 별표(*)는 그런 임의의 알파벳이 “임의의 개수”(0번을 포함)만큼 따라올 수 있음을 말한다. 이 검색식을 사용하면 이상한나라의앨리스?에서 walk로 시작하는 모든 단어를 찾아낼 수 있다.
Continue reading “정규식”

PHP 속도 최적화

★ mysql 총 게시물 수 세기
<?php $numresults = mysql_query(“select code from $board”); $numrows = mysql_num_rows($numresults); //2초 이상 …게시물 10만개 ?> VS <?php $numresults = mysql_query(“select count(code) as code from $board”); $row_num = mysql_fetch_array($numresults); $numrows=$row_num[code]; // 0.2 …게시물 10만개 ?> 아래것이 훠얼씬 빠름다.. 도대체 mysql_num_row() 는 왜 만들어 놓은 것일까용???

★ mysql_fetch_row > mysql_fetch_array >>> mysql_result 입니다.

row 가 array 보다 약간 빠르고, result 보다는 훠얼씬 빠름당 ^^ row 는 불편한게 숫자로 칼럼을 불러와서 불편합니다. array 가 약간 느리지만, 문자 칼럼을 불러 올 수 있으니 array 쓰는 것도 양호 ^^ 아직도 mysql_result() 를 사용하시나요?

★print , echo ,printf 함수 속도 비교
HTML 출력 >> echo > print >> printf print 와 printf 함수는 복잡한곳에 적격이고, 약간 느리다. echo 는 단순한곳에 적격이고…빠르다. printf 는 형식화된 출력을 해주므로 그래도 좋죠 ^^

★ 인라인 Continue reading “PHP 속도 최적화”

문자열 내의 HTML 태그를 모두 없애는 방법

문자열 내의 HTML 태그를 모두 없애는 방법

출처 : http://korea.internet.com/etc/talkback/talkback_content.asp?id=11447&cid=189&nid=28430

<?
function stripHTML($str){
return eregi_replace(“[<][^>]*[>]”, “”, $str);
}
이미지는 살려놓으려면
function stripHTML($str){
return eregi_replace(“[<][^img][^>]*[>]”, “”, $str);
}
?>

php.ini register_globals = OFF

만약 php.ini 파일에서 register_globals 부분이 Off로 설정되었을때는
프로그램짜는 방법이 달라지겠죠

$_POST[] , $_GET[] , $_REQUEST[] 를 사용합니다.
예전의 PHP버전이면 $HTTP_POST_VAR[] , $HTTP_GET_VAR[] 을 사용해야 합니다.
넘어온 변수는 그냥 $a 로 처리하는것이 아닌 $_POST[a] 또는 $_GET[a] 로 처리하여만 하며 POST와 GET방식에 따라 다르며 $_REQUEST[]는 두개다 사용이 가능합니다.
아래와 같이 수정하셔야 합니다.

if ( $_POST[a] == 1 ) echo “1”;
else echo “2”;

위와 같이 하여되 되고 extract() 함수를 사용하여 처리할수도 있습니다.

GET 또는 POST 뿐만 아니라 쿠키는 $_COOIE[],세션은 $_SESSION[]과 파일업로드 처리등도 예전방식으로는 안됩니다.

자세한 사항은 http://kr2.php.net/manual/kr/security.registerglobals.php 를 참조하세요..

테스트해보기
333.php
<form action=”555.php” method=”post”>
<input type=text name=thename maxlength=10 size=10>
<input type=submit value=올리기>
</form>

555.php
<? echo $_REQUEST[“thename”]; ?>