找回密码
 快速注册
搜索
查看: 32|回复: 4

[搜索]输出关键词出现的位置附近的文本

[复制链接]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2024-3-5 22:57 |阅读模式
一个小建议:
要是能输出关键词出现的位置附近的文本就好了,就像真正的搜索引擎一样了
例如全站搜「引理」这两个字: Screenshot 2024-03-05 at 15-00-06 引理 site kuing.infinityfreeapp.com - Google Search.png

730

主题

1万

回帖

9万

积分

积分
93613
QQ

显示全部楼层

kuing 发表于 2024-3-5 23:09
hbghlyj 发表于 2024-3-5 22:57
一个小建议:
要是能输出关键词出现的位置附近的文本就好了,就像真正的搜索引擎一样了


这估计得大改啦,我自然是弄不来……
就酱紫吧……

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-9-15 19:15


我们可以从简单的事情开始,比如显示包含第一个关键字的行,这样用户就可以看到关键字周围的文本

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-9-15 19:23
hbghlyj 发表于 2024-9-15 11:15
显示包含第一个关键字的行 ...
编写一个简单的函数进行测试
  1. function findFirstLineContainingKeyword($post, $keyword) {
  2. $lines = explode("\n", $post);
  3. foreach ($lines as $line) {
  4. if (strpos($line, $keyword) !== false) {
  5. return $line;
  6. }
  7. }
  8. return null; // Keyword not found
  9. }
复制代码
此代码首先使用 explode("\n", $post)$post 字符串按行拆分为一个数组。然后,它遍历每一行并使用 strpos($line, $keyword) !== false 检查 $keyword 是否存在。如果找到,该函数将返回该行。如果没有,则返回 null
使用示例:
  1. $post = "This is a multi-line string.\nI'm searching for the keyword 'keyword'.\nHere it is: keyword found!";
  2. $keyword = "keyword";
  3. $firstLine = findFirstLineContainingKeyword($post, $keyword);
  4. if ($firstLine) {
  5. echo "The first line containing the keyword is: " . $firstLine;
  6. } else {
  7. echo "Keyword not found.";
  8. }
复制代码

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2024-9-15 19:54
常见的网站,例如,MathJax 文档站点 docs.mathjax.org/en/latest/
它的搜索功能使关键字周围的文本一目了然
Screenshot 2024-09-15 195319.png

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 15:32

Powered by Discuz!

× 快速回复 返回顶部 返回列表