10/10/2018, 11:30

[Hỏi] Tự chèn link vào từ khóa trong bài viết !

Vấn đề : mình muốn khi xuất bài viết vào CSDL thì những từ khóa trong kho từ khóa sẽ được tự động chèn link của từ khóa đó rồi mới insert vào CSDL

Ví dụ :
- từ khóa thiết kế web - link : http://www.thietkeweb.com
- thì trong bài viết có xuất hiện từ khóa thiết kế web sẽ bị thay bằng <a href="http://www.thietkeweb.com">Thiết kế web </a>

Mình có tìm hiểu qua hai hàm preg_match (để coi có từ khóa không) và preg_replace (để thay thế)
Nhưng như vậy mình chỉ có thể làm được một từ khóa thôi.
với một danh sách từ khóa thì mình giải quyết sao đây các bạn ? chẳng lẽ dùng vòng lặp. như vậy thì code hơi bị chậm vì bài viết đâu có ngắn.

- với một vấn đề nữa là tiếng việt có dấu và không dấu.

Mong các bạn giúp đỡ
Nhoc.Maru viết 13:45 ngày 10/10/2018
mình tìm được cái function này mọi người cho ý kiến nha
<?php
/**
* Highlight keyword in a string
*
* @param string $text
* @param string $keyword
* @return string
*/
public function highlightKeywords($text, $keyword)
{
$output = '';

$words = array();

preg_match_all('#(?:"([^"]+)"|(?:[^\s\+\-"\(\)>< ~\*\'\|\\`\!@\#\$%^&_=\[\]\{\}:;,\./\?]+))#si', $keyword, $matches, PREG_SET_ORDER);

foreach ($matches as $match)
{
if (2 === count($match)) {
$words[] = $match[1];
} else {
$words[] = $match[0];
}
}

$words = implode('|', $words);

$textParts = preg_split('#(<.+?>)#si', $text, -1, PREG_SPLIT_DELIM_CAPTURE);

foreach ($textParts as $byHtmlPart)
{
if ($byHtmlPart{0} != '< ') {
$byHtmlPart = preg_replace('#(' . $words . ')#si', '<span class="highlight">\1</span>', $byHtmlPart);
}

$output .= $byHtmlPart;
}

return $output;
}

?>
Nhoc.Maru viết 13:32 ngày 10/10/2018
nó giải quyết được khoản in đậm từ khóa
nhưng còn vấn đề link cho từ khóa thì chứ vì mình tính mỗi từ khóa sẽ dẫn tới một link khác nhau
bionetvn viết 13:38 ngày 10/10/2018
Được gửi bởi Nhoc.Maru
nó giải quyết được khoản in đậm từ khóa
nhưng còn vấn đề link cho từ khóa thì chứ vì mình tính mỗi từ khóa sẽ dẫn tới một link khác nhau
k nhất thiết là vậy tùy vào muốn đặt link nào vào tư khóa nào.
boykhat viết 13:39 ngày 10/10/2018
Kiểu gì cũng phải dùng vòng lặp, mà việc xuất CSDL chỉ diễn ra 1 lần thì sợ gì nhanh hay chậm bác nhỉ
ngoc_viet08 viết 13:45 ngày 10/10/2018
str_replace .............
Bài liên quan
0