Я использую codeigniter в качестве основы.Я настраиваю опцию фильтра для отображения элементов из базы данных SQL, которая содержит хеш-теги, она прекрасно работает, однако она также возвращает записи, содержащие html-теги, например
style="color:#f00; color:#ff0000; ETC
Это только # теги внутри
Я провел небольшое исследование и имел ограниченные знания в области регулярных выражений (для меня это как иностранный язык!).
Это прекрасно работает.
$hashtag = "#" . $hashtag;
$this->db->like("feed_item.content", $hashtag);
Я думаю, что мне нужно что-то вроде этого (борется с этим).
$sq = "/^(?![\"\'].*#.*[\"\']).*$/m";
$this->db->where('LOWER(otherColumn) REGEXP', $sq);
Я скопировал код выше, и попытался изменитьэто просто ничего не делает.
Я не получаю никаких ошибок, но это типично для PHP :( Он не возвращает никакого вывода, когда я делаю это:
public function get_hashtag_feed($hashtag, $userid, $page)
{
$hashtag = "#" . $hashtag;
$sq = $re = '/^(?!["\'].*#.*["\']).*$/m/g';
//$this->db->like("feed_item.content", $hashtag);
return $this->db
->select("feed_item.ID, feed_item.content, feed_item.post_as,
feed_item.timestamp, feed_item.userid, feed_item.likes,
feed_item_polls.question as poll_question, feed_item_polls.type as poll_type,
feed_item_polls.votes as poll_votes,
user_blog_posts.Id as blog_postid, user_blog_posts.title as blog_post_title,
user_blog_posts.image as blog_post_image")
->join("users", "users.ID = feed_item.userid")
->join("user_images", "user_images.ID = feed_item.imageid", "left outer")
->join("user_albums", "user_albums.ID = user_images.albumid", "left outer")
->join("user_videos", "user_videos.ID = feed_item.videoid", "left outer")
->join("users as profile", "profile.ID = feed_item.profile_userid", "left outer")
->join("feed_item_polls", "feed_item_polls.ID = feed_item.pollid", "left outer")
->join("user_blog_posts", "user_blog_posts.ID = feed_item.blog_postid", "left outer")
->join("pages", "pages.ID = feed_item.pageid", "left outer")
->join("page_users", "page_users.pageid = feed_item.pageid AND page_users.userid = " . $userid, "LEFT OUTER")
->join("calendar_events", "calendar_events.ID = feed_item.eventid", "left outer")
->join("feed_likes", "feed_likes.postid = feed_item.ID AND feed_likes.userid = " . $userid, "LEFT OUTER")
->join("user_saved_posts", "user_saved_posts.postid = feed_item.ID AND user_saved_posts.userid = " . $userid, "left outer")
->join("feed_item_subscribers", "feed_item_subscribers.postid = feed_item.ID and feed_item_subscribers.userid = " . $userid, "LEFT OUTER")
->where("LOWER(otherColumn) REGEXP", $sq)
->order_by("feed_item.ID", "DESC")
->limit(10,$page)
->get("feed_item");