我找到了一个名为mecab的软件,它基本上读取了一个字符串并将这些单词分类为名词,动词等。我要做的是使用Google Search API将搜索功能放在我的页面上,这样每当我查找一个位置,例如牛津街,将展示一些结果,mecab将分别采取这些结果并完成其工作。
我坚持的是我不知道如何将这些结果提供给mecab。
以下是代码:
<html>
<head></head>
<body>
<script type="text/javascript" src="http://www.google.com/jsapi?key=AIzaSyBX85AAhYSkh66lk8i2VBSqVJSY_462zGM"></script>
<script type="text/javascript">
function OnLoad()
{
// Create Search Control
var searchControl = new google.search.SearchControl();
// Add searcher to Search Control
searchControl.addSearcher( new google.search.WebSearch() );
searchControl.draw( document.getElementById( 'content' ) );
// Execute search
searchControl.execute( '新宿' );
}
// Load Google Search API
google.load( 'search', '1' );
google.setOnLoadCallback( OnLoad );
</script>
<div id="content">Loading...</div>
<?php
define('Mecab_Encoding', 'SJIS');
define('Mecab_ResultEncoding', 'UTF-8');
define('MeCab_Path', 'mecab.exe');
function morph_analysis($text) {
$text = mb_convert_encoding($text, Mecab_Encoding, Mecab_ResultEncoding);
$descriptorspec = array (
0 => array ("pipe", "r"), // stdin
1 => array ("pipe", "w") // stdout
);
$process = proc_open(MeCab_Path, $descriptorspec, $pipes);
if (is_resource($process)) {
// Feed string to macab
fwrite($pipes[0], $text);
fclose($pipes[0]);
// Read the string
while (!feof($pipes[1])) {
$result .= fread($pipes[1], 4096);
}
fclose($pipes[1]);
proc_close($process);
$result = mb_convert_encoding($result, Mecab_ResultEncoding, Mecab_Encoding);
$lines = explode("\r\n", $result);
$res = array();
foreach($lines as $line) {
if(in_array(trim($line), array('EOS', ''))) {continue;}
$s = explode("\t", $line);
$word = $s[0];
$words = explode(',', $s[1]);
if ($words[0] == "名詞"){
$res[] = array(
'word' => $word,
'class' => $words[0],
'detail1' => $words[1],
'detail2' => $words[2],
'detail3' => $words[3],
'conjugation1' => $words[4],
'conjugation2' => $words[5]
);
}
}
return $res;
} else {
return false;
}
}
$text ="今日はいい天気です。";
$result = morph_analysis($text);
echo "<pre>";
print_r($result);
echo "</pre>";
?>
</body>
</html>
答案 0 :(得分:1)
所以你基本上有一个div,它填充了你想要传递给PHP的javascript API中的内容。最简单的方法是通过javascript对PHP脚本进行ajax调用,就像API填充页面一样。除此之外,您将把内容交给PHP并返回一个结果,然后您可以将其放在页面中的任何位置,例如您想要的另一个 div 。
<div id="content">Loading...</div>
您可以使用javascript文档的getElementById
属性访问此内容。
<script>
$.ajax({
type: "POST",
data: {"text": document.getElementById('content').innerHTML },
url: "http://www.example.com/your-php-script.php", // put the URL to your PHP script here
}).done(function ( data ) {
document.getElementById('myOutPutDiv').innerHTML = data;
});
</script>
然后你的HTML将有适当的div输出
<div id="myOutPutDiv">Output goes here...</div>
然后在PHP脚本中,您将收到$ _POST / $ _ REQUEST超级全局数据......
<?php
$text = $_POST['text']; // This is the stuff you got from your javascript
/* Work with $text here */
请务必将PHP与javascript内容分开,因为它们将独立行动。