2013-06-06 29 views
1

我使用PhantomJS通過PHP獲取網頁標題和網址。我的JavaScript函數是如何將JavaScript數組返回到PHP腳本?

var page = require('webpage').create(), url; 
url = phantom.args[0]; 

page.open(url, function (status) 
{ 
    var title = page.evaluate(function() 
    { 
     return document.title; 
    }); 

    var url = page.evaluate(function() 
    { 
     return document.url;  
    }); 

    var results = new Array(2); 
    results[0] = title; 
    results[1] = url; 
    console.info(results); 
    phantom.exit(); 
}); 

然後我嘗試迴響在我的PHP的results陣列調用該函數的JSON:

<?php 
    header('content-type: application/json; charset=utf-8'); 
    $url = $_GET['url']; 
    $cmd = '/usr/local/bin/phantomjs pagetitle.js ' . $url; 
    $results = exec($cmd); 
    echo json_encode(array('pagetitle' => $results[0], 'url' => $results[1])); 
?> 

但是我只得到了titleurl作爲輸出的第一個字符:

{"pagetitle":"T","url":"h"} 

我錯過了什麼?

回答

0

我不能幫你在PHP(這不是我最喜歡的語言...),但phantomjs腳本是無效的。

2從我的觀點錯誤:

  • document.url未定義=> shoudl是document.URL(CAS敏感)
  • 輸出不是JSON =>調用JSON.stringify

試試這個:

var page = require('webpage').create(), url; 
url = phantom.args[0]; 

page.open(url, function (status) 
{ 
    var title = page.evaluate(function() 
    { 
     return document.title; 
    }); 

    var url = page.evaluate(function() 
    { 
     return document.URL;  
    }); 

    var results = new Array(2); 
    results[0] = title; 
    results[1] = url; 
    console.info(JSON.stringify(results)); 
    phantom.exit(); 
}); 
+0

啊,本來做的。謝謝! – PutraKg

相關問題