php
  • post
  • attributes
  • tags
  • 2017-03-28 30 views 0 likes 
    0

    私はlaravelを使用して簡単なソーシャルネットワークを作成しています。ユーザーは、@を投稿エリアに入力して、友人のリストを取得することができます。すべては、私はポストを取得し、私が必要とするデータベースに挿入すると言及している以外のPHPの投稿データから属性を取得する

    <a type="mention" href="/user/Jordan" title="Jordan">Jordan</a> 
    

    通常のリンクは今type='mention'

    を持っていません(githubのからzurb /トリビュートを使用して)このようにリンクに言及します投稿に記載されているユーザーのリストを取得します。私はtype ='mention'のリンクを探しています。あれがあれば誰もが通知システムに挿入するタイトルを取得したいのですが。このif文にどのようなPHPコードを追加する必要がありますか?

    if(stristr(request('post'),' type="mention" ')){ 
    
    } 
    

    答えて

    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); 
    } 
    

    しかし、私はおそらく送信されませんノードをサーバーに戻します。ブラウザ側で実装されている表示専用の機能にするために何らかの方法を検討し、単に "@jordan"文字列をサーバーに送り返すことを検討する必要があります。

    +0

    通知とコードをお寄せいただきありがとうございますが、この「クラス 'App \ Http \ Controllers \ DOMDocumentが見つかりません」 –

    +0

    明快さに欠けて申し訳ありません。 DOMDocumentとDOMXPathの両方が標準ライブラリにあります。つまり、ファイルの先頭に「use DOMDocument」などの「use」ステートメントを含めたり、DOMDocumentになるようにコードを変更したりする必要があります。私の答えは今更新されます。 – fromz

    +0

    は大変ありがとうございます。私がリンクとして送る方法は、他のユーザーが言及をクリックしてそのユーザーのページにリダイレクトされるようにするか、他の操作を実行できるようにすることです。 @nameとして送る方法を見つけようとします。 –

    関連する問題