私の問題はまっすぐで、私はnodejs/nightmarejsから始まり、私はPHPスクリプトでこのjsスクリプトを呼び出して答えを取得する必要があります。私はWAMPをし、私のスクリプトを使用していPHPのnode.js(nightmarejs)スクリプトを呼び出す
は同じフォルダに両方とも:
C:\wamp64\www\nightmare\index.php
C:\wamp64\www\nightmare\index.js
index.js:
var Nightmare = require('nightmare');
var nightmare = Nightmare({ show: true })
nightmare
.goto('http://yahoo.com')
.type('form[action*="/search"] [name=p]', 'nightmare github')
.click('form[action*="/search"] [type=submit]')
.wait('#main')
.evaluate(function() {
return document.querySelector('#main .searchCenterMiddle li a').href
})
.end()
.then(function (result) {
console.log(result)
})
.catch(function (error) {
console.error('Search failed:', error);
});
のindex.php:私は「
<?php
exec("index.js", $jsOutput);
var_dump($jsOutput);
?>
私がexec()
を使用すると、私はそれが正常に動作するためのコマンドライン全体を与える必要がありますいくつかの他の投稿に見られて、何か:
exec("node index.js", $jsOutput);
私はnodejsへの全体的な経路を与えなければならないと考えましたか?しかし、私は現在のフォルダからnodejsへのパスを取得する方法が見つかりませんでした。 誰もがライトを持っているなら、それは感謝します。 Linuxでは
<?php
exec('where node', $nodePath);
if ($nodePath && $nodePath[0]) {
exec('"' . $nodePath[0] . '" index.js', $jsOutput);
var_dump($jsOutput);
}
else {
echo 'node not found.';
}
あなたがコマンドを見つけたまたは、を見つけるすることができます:あなたはコマンドを使用できるWindowsでファイルを検索する どうもありがとう
ありがとう情報、しかし私の問題は、実際には、ノードのパスを見つけることがずっと簡単でした。私の答えを見てください。 – Alex