2011-05-06 3 views
1

두 개의 php 파일이 있습니다 : 하나는 key.php이고 다른 하나는 키를 검증하는 함수입니다. 나는 정기적으로 key.php 파일에 쓰기를하고 validator.php 파일에서 키를 갱신하고 싶다.fwrite()를 사용하여 파일에 변수 설정하기

이 코드를 가지고 :

$ newkey = '같은 것입니다 $ 새로운 키의 값으로 파일 key.php에 $ 키 변수를 설정 난 할 노력하고있어
$fp = fopen('key.php', 'w'); 
$fwrite = fwrite($fp, '$key = "$newkey"'); 

agfdnafjafl4 '; validator.php에서.

어떻게 작동합니까? (덮어 쓰는 다른 파일에 기존 변수를 설정하려면 fwrite를 사용하십시오)?

+0

그리고 가지에서 갔다 * 실제 * 문제를 해결하는 데 사용한 접근법을 다시 생각해보십시오. –

답변

2

이 시도 :

$fp = fopen('key.php', 'w'); 
fwrite($fp, '$key = "' . $newkey . '"'); 
fclose($fp); 

이 문자 그대로의 의미에서 변수를 "덮어 쓰기"합니다. 그러나 실행중인 스크립트에서 사용중인 스크립트를 수정하지 않으므로 스크립트를 설정해야합니다 ($key = somevalue).

요즘까지는 데이터베이스 또는 별도의 플랫 텍스트 파일을 사용해야합니다. 이런 식의 PHP 코드 수정은보기 흉한 것입니다.

+3

및 Chris가 작은 따옴표를 이스케이프 처리하는 방법을 알려줍니다. 당신이 key.php를 탈출하지 않는다면 말 그대로'$ key = "$ newkey"라고 말할 것입니다; 작은 따옴표를 사용한다면 PHP는 변수를 처리하지 않을 것입니다. 복식을 사용한다면 그럴 것입니다. 그래서'$ test = 'test';와':'echo "이것은 $ test";'echo'이것은 test '이고'echo'이것은 $ test '이고,'would echo'이것은 $ test = 'test' 테스트'. –

+0

또 다른 문제가 있습니다. 해결책이 주어지면 나에게 묻습니다. Chris 나 다른 누구도 완전한 작업 솔루션을 제출할 필요가 없습니다. 질문에서 $ newkey는 다른 파일에서 유래했기 때문에 Trenton이이 변수에 이상한 일이 발생하지 않는다고 가정합니다. –

0

for_example, 당신은 YOUR_File.php을 가지고, 거기에는 다음과 같은 코드를 사용, 그 변수를 "안녕하세요 니콜라스을"변경

$any_varriable='hi Mikl';를 기록됩니다

<?php 
$filee='YOUR_File.php'; 
     /*read ->*/ $temmp = fopen($filee, "r"); $contennts=fread($temp,filesize($filee)); fclose($temmp); 

// here goes your update 
$contennts = preg_replace('/\$any_varriable=\"(.*?)\";/', '$any_varriable="hi Jack";', $contennts); 
     /*write->*/ $temp =fopen($filee, "w"); fwrite($temp, $contennts); fclose($temp); 
?> 
관련 문제