我正在编写一个 PHP 网页,它从搜索框中获取数据并使用它来搜索 mysql 数据库并返回结果。目前它只使用带有所有提供数据的 mySQL LIKE 查询。这不是很灵活,因为它将数据视为要匹配的单个精确表达式。
在快速谷歌之后,我找到了这个页面(http://www.iamcal.com/publish/articles/php/search/),我打算用它来扩展我的搜索网页的功能。
但是,我对该网页上的教程有两个疑问:
1)教程的第一部分是这样的:
$terms = preg_replace("/\"(.*?)\"/e", "search_transform_term('\$1')", $terms);
我不明白为什么 * 后面跟着一个?,据我了解,.* 表示一个字符(可以是任何字符)零次或多次,这表示任何字符串。这 ?表示零次或一次。因此没有.*?也意味着任何字符串?
2)我的第二个问题是如何使表达式替换语音标记中包含的表达式而不是括号?