programing

.js 파일 내에서 PHP 코드 실행

lovecodes 2023. 3. 6. 22:36
반응형

.js 파일 내에서 PHP 코드 실행

PHP를 .js 파일 내에서 실행하려고 하는데, 제대로 하는 방법을 모르는 것 같습니다.

기본적으로 코드는 내 페이지에 HTML 태그를 추가하는 것으로, 슬라이드 아웃 연락처 폼으로 사용하고 있습니다.그러나 연락처 양식 자체는 워드프레스로 단축코드로 이루어집니다.그래서 폼을 슬라이드시키는 코드 안에서 쇼트 코드를 동작시키려 하고 있습니다.

var phpTest = '<?php do_shortcode("[contact-form-7 id=\'1088\' title=\'Live Chat Form\']"); ?>';

// add feedback box
$this.html('<div id="fpi_feedback"><div id="fpi_title" class="rotate"><h2>'
    + thisSettings.title
    + '</h2></div><div id="fpi_content">'
    + phpTest
    + '</div></div>');

변수 "phpTest"를 텍스트가 포함된 일반 문자열로 변경하면 정상적으로 표시됩니다.이 경우 php를 어떻게 실행해야 할지 모르겠습니다.

편집: 스크립트 유형은 항상 다음과 같아야 합니다.text/javascript~하듯이application/javascript오래된 브라우저와의 호환성이 깨질 수 있습니다(IE8 이전 버전에서는 해당 유형의 스크립트태그는 무시될 것으로 생각됩니다).단, 콘텐츠유형은application/javascript.


php를 php에 혼재시킬 수 없습니다..js파일, 일반 파일처럼.php파일, 그 이후.js파일은 에 의해 사전 처리되지 않습니다..php의 방법으로 엔진을 작동시키다.php파일이 있습니다.

이를 위한 가장 일반적인 방법은 js 파일에 php를 포함하여 인라인 JS(sube-between)를 갖는 것입니다.<script>tags)를 사용합니다.그러면 예상대로 될 거예요.

또 다른 방법은 php 내에서 js 파일을 만드는 것입니다.따라서 .php 파일을 시작합니다.

<?php
header("Content-type: application/javascript");
?>
var jsvar='something';
var othervar='<?php echo $phpVar; ?>';
//<?php //some php ;?>

그리고 나서 이렇게 당신의 페이지에 포함시키세요.

<script src='myjs.php' type='text/javascript'></script>

당신의 질문은 불가능하다고 코멘트를 드렸습니다만, 확실히 가능합니다.이는 권장되지 않지만 보안 취약점이 우려되지 않는 경우 다음과 같은 방법으로 문제를 해결할 수 있습니다.

작성하다.htaccess같은 디렉토리에 있는 파일.js파일(다음 포함)

AddHandler application/x-httpd-php .js

<FilesMatch "\.js$">
    Header set Content-Type "text/javascript; charset=utf-8"
</FilesMatch>

그러면 JavaScript 파일이 PHP로 실행되고 Content-Type for .js 파일이 자동으로 수정됩니다(ph 핸들러를 추가하면 텍스트로 표시되기 때문입니다).

주의: 이 솔루션은 빠르고 지저분한 솔루션이지만 Ajax를 사용하는 것이 더 좋습니다(chiliNUT의 답변 참조).

.php 파일에 대한 Ajax 포스트 요청을 수행할 수 있습니다.조금 지저분한 속임수지만 효과가 있다

$.post('thePhpFile',{var1:var1,var2:var2},function(result){
    //Code to do with the resulted... like $("#div").html(result);
});

그 요령만 있으면 네가 원하는 건 뭐든지 할 수 있어

파일명이 myscript.js라고 합니다.

머리 태그(실행 가능한 php 파일이어야 함):

<head>
<script type="text/javascript">
<?php 
require_once 'myscript.js';
?>
</script>

...이렇게 하면 그 파일을 php 파일처럼 실행할 수 있습니다.

AJAX를 사용하여 다음과 같은 작업을 수행할 수 있습니다.

JS 코드:

var xmlhttp;
if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}else{
    // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function(){
    if (xmlhttp.readyState==4 && xmlhttp.status==200){
        $this.html('<div id="fpi_feedback"><div id="fpi_title" class="rotate"><h2>'
        + thisSettings.title
        + '</h2></div><div id="fpi_content">'
        + xmlhttp.responseText
        + '</div></div>');
    }
}

xmlhttp.open("GET","do_shortcode_file.php",true);
xmlhttp.send();

do_shortcode_file.php에는 다음과 같은 것이 필요합니다.

PHP 코드:

<?php
echo do_shortcode("[contact-form-7 id=\'1088\' title=\'Live Chat Form\']");

언급URL : https://stackoverflow.com/questions/23574306/executing-php-code-inside-a-js-file

반응형