【问题标题】:How to find #hashtags in strings using Laravel 4.1?如何使用 Laravel 4.1 在字符串中查找#hashtags?
【发布时间】:2014-02-07 15:28:37
【问题描述】:

我目前正在尝试通过输入字符串进行过滤,以找到用户希望与他的照片一起显示的单个主题标签。但是,我目前在我的数据库中得到不正确的插入。

最好的情况是每个主题标签都保存在带有照片 ID 的新数据库行中。但是,我真的不知道该怎么做才能做到这一点。

$hashtag = new Hashtag;

     $hashtag->photo_id = $photo->id;

        $hashtag_string = Input::get('hashtags');

            $hashtag_string = Str::contains($hashtag_string, '#')

        $hashtag->hashtag = $hashtag_string;


$hashtag->save();

我在此备忘单 (http://cheats.jesse-obrien.ca) 中找到了一些功能,但我无法让它们正常工作。

【问题讨论】:

  • Str::contains() 返回 bool laravel.com/api/function-str_contains.html
  • 是的,当我查看我的数据库时,我也意识到了这一点。那该用什么呢?
  • 没有足够的上下文来回答您的问题。
  • 你必须知道什么?我可以添加信息。
  • strpos() 而不是 Str::contains() -- E: 好的,我不明白你的代码试图做什么。

标签: php string input laravel laravel-4


【解决方案1】:

试试这个:

$str = $hashtag_string;

       preg_match_all('/#(\w+)/', $str, $matches);


       foreach ($matches[1] as $hashtag_name) {

       $hashtag =   Hashtag::firstOrCreate(array('hashtag' => $hashtag_name));

                                    }

然后,您可以在这个 foreach 循环中,将这些主题标签连接到帖子(或者在您的情况下为照片)或某事。

【讨论】:

    猜你喜欢
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2010-12-10
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多