次のような小さなテスト データベースを作成しました。
mysql> select * from person;
+-----------+-------------+
| firstName | lastName |
+-----------+-------------+
| matt | butcher |
| emanuel | garbaciovas |
+-----------+-------------+
2 rows in set (0.00 sec)
そして、次のような単純な QueryPath スクリプトを作成しました。
<?php
require 'src/QueryPath/QueryPath.php';
require 'src/QueryPath/Extension/QPDB.php';
$input = qp(QueryPath::XHTML_STUB,'body')
->dbInit('mysql:host=localhost;dbname=qpdb',
array(username=>'my_username',password=>'my_password'))
->queryInto('SELECT firstName FROM person WHERE lastName="butcher"')
->doneWithQuery()->writeHTML()->find('body')->text();
print $input;
?>
今、取得したクエリの文字列[テキスト値]が必要です[つまり、必要なものを取得し、それをweb/excel/csv/etcのhtmlテキストフォームへの入力として使用します]が、問題は、コマンド ラインからこのスクリプトを実行すると、不要な HTML コード/ドキュメントの余分なブロックが生成されます。つまり、出力は次のようになります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/x
html1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
<title>Untitled</title>
</head>
<body>matt</body>
</html>
matt
つまり、基本的に私が欲しいのは「マット」です。「マット」だけを抽出する方法を知っている人はいますか?
明らかに、MySQLクエリから直接テキストを抽出することはできません。これはリソース/オブジェクトであるため、誰かが方法/ハックを知っていますか? QueryPath または No QueryPath は問題ありません [ただし、QueryPath ハックの方が優れています!]