从PHP中的帖子数据中获取属性

时间:2017-03-28 19:12:21

标签: php post attributes tags

我使用laravel创建一个简单的社交网络。用户可以在帖子区域键入@以获取他们的朋友列表以提及它们。像这样的链接中的每一个提及(使用来自github的zurb / tribute)

type='mention'

除了提及之外的普通链接没有type ='mention'

现在,当我收到帖子并将其插入数据库时​​,我需要获得帖子中提到的用户列表。我正在寻找具有if的链接,如果有的话,我想让所有人的标题都插入到通知系统中。我需要在此if(stristr(request('post'),' type="mention" ')){ } 语句中添加哪些PHP代码?

{{1}}

1 个答案:

答案 0 :(得分:1)

除了使用AST(抽象语法树)之外,最好的办法是在PHP端使用DOM,例如:

$string = '<a type="mention" href="/user/Jordan" title="Jordan">Jordan</a>';
$doc = new \DOMDocument();
$doc->loadHTML($string);
$xpath = new \DOMXPath($doc);
foreach ($xpath->query("//a[@type='mention']") as $a) {
    $href = $a->getAttribute('href');
    $title = $a->getAttribute('title');
    echo sprintf("Found mention of %s with href of %s\n", $title, $href);
}

但是,我可能不会将A节点发送回服务器。您应该考虑以某种方式使其成为浏览器端实现的仅显示功能,并简单地发送&#34; @ jordan&#34;字符串回到服务器。