2016-09-19 2 views
0

JS에 PHP 변수를 전달하는 방법에 대해 수백 가지의 질문이 있지만 몇 가지 해결책을 시도했지만 아무 것도 효과가 없다는 것을 알고 있습니다.Phantom js에 PHP 변수를 전달

저는 꽤 javascript에 익숙합니다. phantomjs를 사용하여 외부 웹 페이지의 URL을 사용하고 있습니다.

나는이

<?php 
exec ('phantomjs script2.js ', $html); 
var_dump($html) ; 
?> 

완벽하게 작동 getweb.php에 의해 호출

var page = require('webpage').create(); 
page.onError = function(msg, trace) { 
    //prevent js errors from showing in page.content 
    return; 
}; 
page.open('http://www.google.com', function() { 
    console.log(page.content); //page source 
    phantom.exit(); 
}); 

을 script.js 있습니다. 하지만 google.com 대신 php 변수를 넣으 려한다면 작동하지 않습니다. (그냥 추측하면 ...) 팬텀은 탐색기로 해석되지 않기 때문입니다.

나는 실행하고

var page = require('webpage').create(); 
page.onError = function(msg, trace) { 
    //prevent js errors from showing in page.content 
    return; 
}; 
page.open(adress, function() { 
    console.log(page.content); //page source 
    phantom.exit(); 
}); 

내 스크립트를 변경하지만, 그냥 아무것도 발생하지 않고 시간이 걸릴하기 전에

<script> 
var adress = '<?php echo "http://www.google.com" ; ?>'; 
</script> 

을 넣어했습니다.

script.js에 PHP 변수를 전달하려면 어떻게해야합니까?

덕분에 많은

답변

1

내가 할 수있는 가장 좋은 방법은 스크립트와 함께 당신이 Phantom.JS을 실행할 때 추가 인수를 전달 생각합니다. 나는 당신의 맥락에서 테스트 할 수는 없지만 이런 식으로 시도해보십시오. 당신의 PHP에서 : 자바 스크립트에서 다음

exec ('phantomjs script2.js "http://example.com/"', $html); 

, system.argsconsole.log()을한다. 그 중 하나는 http://example.com/이어야합니다. 또한 : http://phantomjs.org/api/system/property/args.html

관련 문제