3

他の検索の一貫性のために、SQL (MySQL) の LIKE コマンドによって行われる一致と同じ方法で、入力文字列を PHP ページに一致させたいと考えています。(私は見たが理解していない)PHP構文の一部にはSQLコマンドが含まれているので、これが可能かどうか疑問に思っていますか?

この理由は、シリアル化された配列に格納されている DB 内のフィールドに対してキーワードの検索を実装しているためです。配列の構造に応じて PHP でシリアル化を解除し、検索する必要があります。テーブルに対してクエリを実行することはできません。クエリの一致機能が必要なだけです。それ以外の場合は、一貫性のない別のマッチング ルーチンを見つける必要があります。これは仕様では予想されていなかったため、DB に戻って再構築することはできません。はい、醜いハックが必要ですが、最もエレガントなものを探しています。

それが不可能な場合は、ユーザーが入力したテキストをキーワードとして保存されたテキストと照合するという推奨事項を使用できます。

編集(明確化のため):私の主な問題は、LIKEコマンドがどのように機能するか(コードをコピーするだけ)を完全に把握していないことです.キーワードはある程度の曖昧さを暗示しているため、正規表現。私は正規表現の方が優れているだけで、好きなものはあまり得意ではありません。私のクエリは「LIKE 'matchme%'」です

4

4 に答える 4

0

入力文字列が LIKE var% かどうかを確認できるようにしたいということですか?

strpos(haystack, needle) を使用して %var% に一致させることができます。

if( strpos($source, "var") == 0 ) echo "matches var%";
if( strlen($source) - (strpos($source, "var")) == strlen("var") ) echo "matches %var";

それはかなり醜いです。そして実際には、おそらく最もエレガントではありません。

于 2009-02-18T21:17:02.513 に答える
0

preg_matchが必要だと思いますが、それは LIKE とまったく同じ動作ではありません。

<?php // The "i" after the pattern delimiter indicates a case-insensitive search 
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found."; 
} else {
    echo "A match was not found."; } 
?>
于 2009-02-18T21:11:11.217 に答える