テキストエディタ用のPHPの関数の入力補完ファイルを作りたくて、htmlSQLを使ってPHPの全関数名を取得してみた。
ただし、クラスというか組み込みオブジェクトのメソッドは今回は除外。それと、PHPマニュアルでリンクになっていない関数も除外。
それでも4000近いfunctionがあった。このうちいくつを使いこなせているんだろう?
<?php
require('htmlsql/snoopy.class.php');
require('htmlsql/htmlsql.class.php');
$wsql = new htmlsql();
if (!$wsql->connect('url', 'http://jp2.php.net/manual/ja/indexes.php')) {
exit('Error while connecting: ' . $wsql->error);
}
$sql = ' SELECT text FROM a ';
$sql .= ' WHERE $class == "function" ';
//今回はクラスのメソッドは除外
$sql .= ' AND !preg_match("/(::|->)/", $text) ';
if (!$wsql->query($sql)) {
exit('Query error: ' . $wsql->error);
}
foreach ($wsql->fetch_array() as $row) {
//後ろのカッコを取って出力
echo str_replace('()', '', $row['text']) . "<br />\n";
}
こうやって取得した関数名に一部の予約語を足してできたGinnieの入力補完用ファイルがこれ。
どんなもんでしょう。
ginnie_phpscript.xml.zip