Rumah > Artikel > pembangunan bahagian belakang > Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS
Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS
Dengan perkembangan pesat Internet, sistem pengurusan kandungan (CMS) telah menjadi bahagian yang sangat penting dalam pembangunan laman web. Untuk sistem CMS, fungsi carian teks penuh amat diperlukan. Melalui carian teks penuh, pengguna boleh mencari pelbagai kandungan dengan mudah di tapak web, meningkatkan pengalaman dan kecekapan pengguna. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS dan menyediakan beberapa contoh kod.
1. Prinsip asas dan proses mendapatkan semula teks penuh
Pendapatan teks penuh merujuk pada pemadanan semua kandungan dokumen berdasarkan kata kunci yang dimasukkan oleh pengguna dan mengembalikan hasil carian yang berkaitan. Prinsip dan proses asas adalah seperti berikut:
2. Gunakan PHP untuk melaksanakan fungsi mendapatkan semula teks penuh sistem CMS
Di bawah ini kami akan menggunakan PHP untuk melaksanakan fungsi mendapatkan semula teks penuh sistem CMS jadual pangkalan data
CREATE TABLE `articles` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` text NOT NULL, `created_at` datetime NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `ft_title_content` (`title`,`content`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Masukkan data ujian
INSERT INTO `articles` (`title`, `content`, `created_at`) VALUES ('PHP全文检索实现', '全文检索是指根据用户输入的关键词,在文档的所有内容中进行匹配,并返回相关的搜索结果。', '2021-01-01'), ('MySQL全文检索实现', '全文检索是一种对文本内容进行搜索的技术,可以提高用户的搜索效率。', '2021-02-01'), ('Elasticsearch全文检索实现', 'Elasticsearch是一个开源的分布式搜索引擎,提供了全文检索的功能。', '2021-03-01');
Buat fungsi carian teks penuh
function search($keywords) { $pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password'); $keywords = explode(' ', $keywords); $keywords = array_map(function($keyword) { return '+' . $keyword . '*'; }, $keywords); $keywords = implode(' ', $keywords); $sql = "SELECT * FROM `articles` WHERE MATCH (`title`, `content`) AGAINST (:keywords IN BOOLEAN MODE)"; $stmt = $pdo->prepare($sql); $stmt->bindValue(':keywords', $keywords); $stmt->execute(); return $stmt->fetchAll(PDO::FETCH_ASSOC); }
Lakukan operasi carian
$keywords = $_GET['keywords']; $results = search($keywords); if (empty($results)) { echo '未找到相关结果'; } else { foreach ($results as $result) { echo '<h2>' . $result['title'] . '</h2>'; echo '<p>' . $result['content'] . '</p>'; echo '<p>' . $result['created_at'] . '</p>'; } }
, melaksanakan operasi carian teks penuh dan memaparkan hasil carian kepada pengguna.
Kesimpulansearch()
Dokumentasi rasmi PHP (https://www.php.net/)
Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan fungsi carian teks penuh sistem CMS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!