예제 코드:
@set_magic_quotes_runtime(0);
//번역 문자 함수
function Daddslashes($string) {
if(!is_array($string)) return addlashes($string)
foreach( $string as $key => $val) $string[$key] = Daddslashes($val);
return $string;
}
PHP는 두 가지 편의를 제공합니다. 데이터 인용을 위한 매직 참조 함수 Magic_quotes_gpc 및 Magic_quotes_runtime. 이 두 함수가 php.ini에서 ON으로 설정되면 인용하는 데이터에 작은 따옴표 ', 큰 따옴표 " 및 백슬래시가 나타날 때 자동으로 백슬래시를 추가합니다. 슬래시는 우리를 도와줍니다. 데이터 작업의 올바른 작동을 보장하기 위해 기호를 자동으로 변환합니다. 그러나 다른 버전의 PHP 또는 다른 서버 구성에서는 일부 Magic_quotes_gpc 및 Magic_quotes_runtime이 on으로 설정되고 일부는 off로 설정되므로 우리가 작성한 프로그램은 두 가지를 모두 충족해야 합니다. 그렇다면 Magic_quotes_gpc와 Magic_quotes_runtime 함수의 차이점은 무엇입니까? 다음 설명을 참조하세요.
magic_quotes_gpc와 Magic_quotes_runtime 함수의 차이점
magic_quotes_gpc
범위: 웹 클라이언트서버;
작업 시간: 예를 들어 스크립트가 실행될 때
magic_quotes_runtime
파일에서. 읽은 데이터는 SQL 쿼리에서 얻을 수 있습니다.
작업 시간: 스크립트가 실행 상태에서 생성된 데이터에 액세스할 때마다 Magic_quotes_gpc의 설정 값이 /Cookies에서 얻은 데이터에 영향을 미칩니다. Magic_quotes_runtime은 파일에서 읽은 데이터나 데이터베이스 쿼리에서 얻은 데이터에 영향을 미칩니다.
예:
코드 복사
//$data1 데이터를 데이터베이스에 직접 쓰기(자동 번역)
}else{
$data1 = addlashes($data1)
// $data1 데이터를 데이터베이스에 쓰고 함수를 사용합니다(번역하려면 addslashes())
}
if(get_magic_quotes_runtime()){
//$data2 데이터 직접 쓰기 데이터베이스 입력(자동 번역) )
//stripslashes()의 기능은 다음을 제거하는 것입니다. 이는 addlashes()
}else{
$와 반대입니다. data2 = addlashes($data2);
//데이터베이스에 $data2 쓰기
//데이터베이스에서 읽은 데이터가 직접 출력됩니다
}
가장 중요한 차이점은 위에서 언급한 두 가지 점입니다. 서로 다른 처리 개체를 대상으로 합니다
magic_quotes_gpc의 설정 값은 Get/Post/Cookies를 통해 얻은 데이터에 영향을 미칩니다
magic_quotes_runtime의 설정 값은 Data에서 얻은 데이터에 영향을 미칩니다 데이터베이스 쿼리에서 얻은 파일이나 데이터에서 읽기
그런데 연결하고 싶은 몇 가지 함수는 다음과 같습니다.
set_magic_quotes_runtime():
설정 Magic_quotes_runtime 값 0=off.1=on. 기본 상태는 꺼짐
get_magic_quotes_gpc():
magic_quotes_gpc 값 보기get_magic_quotes_runtime() :
magic_quotes_runtime 값을 확인하세요. 0=끄기 1=켜기
set_magic_quotes_gpc() 함수가 없습니다. 즉, Magic_quotes_gpc의 값은 프로그램에서 설정할 수 없습니다.