微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为包含简短博客的网站创建 Twitter 共享链接

如何解决如何为包含简短博客的网站创建 Twitter 共享链接

我想从我的网站创建一个 Twitter 共享链接,以便通过从 PHP 数据库获取数据来共享用户博客的前几行。博客的数据以HTML格式存储在数据库中。我尝试获取数据并将其转换为 HTML 解码的字符,但是当我尝试使用转换后的字符到 Twitter 链接时,它会在发布推文之前重新添加 HTML 字符/标签。附上图片供参考。

<script>
 
    function share(a) {
              let share_poem_ID = "#share-modal-" + a;
              document.querySelector(share_poem_ID).style.display = "block";
            }
    
    function shareClose(b) {
              let share_poem_ID = "#share-modal-" + b;
              document.querySelector(share_poem_ID).style.display = "none";
            }
</script>

<?PHP
    
    include 'connection.PHP';
    session_start();
    
    $query = " Select * From $dbtable";
    $result=@MysqLi_query($connection,$query);
    $row=MysqLi_fetch_assoc($result);
    
    foreach ($result as $row) {
     $Poem = $row['Poem'];
     $PoemShare =  htmlspecialchars_decode($Poem);
       echo "
        <div>
         <div class='the-poem'>
          <div class='poem'>$Poem</div>
         </div>
    
         <div class='poem-options'>
          <a class='share poem-option-list' id='report-btn-$ID' data-field-id='$ID' onclick='share($ID)'><i class='mdi mdi-share'></i></a>
         </div>
        </div>
    
      <!--- Share Modal --->
        <div class='modal-share' id='share-modal-$ID' role='dialog'>
         <div id='modal_content-share' class='modal-content-share'>
          <div class='page-container' id='page-content'>
            <span id='twitter$ID' class='share-option'>
              <i class='mdi mdi-twitter'></i>
                Share via Twitter
             </span>
           <script>
               $('#twitter$ID').on('click',function(){
                  window.open('https://twitter.com/intent/tweet?url=https://www.MartianJK.com/ms/login.PHP?u=$ID&text='$PoemShare'&hashtags=SpreadingSmiles','_blank').focus();
                })
          </script>
         </div>      
        </div>
       </div>            
      ";
    
    }
    ?>

Image

解决方法

您可以使用strip_tags()

$PoemShare =  strip_tags($Poem);

或者保留 <br> 标签:

$PoemShare =  strip_tags($Poem,'<br>');
,
$PoemShare = strlen($Poem) > 99 ? substr($Poem,100).'...' : $Poem;    
$PoemShare = strip_tags($PoemShare,'<br>');
$PoemShare = preg_replace('<<br />>','%0A',$PoemShare);
$PoemShare = str_replace('&','%26',$PoemShare);
$PoemShare = str_replace('"','%22',$PoemShare);
$PoemShare = str_replace("'",'%27',$PoemShare);
echo var_dump($PoemShare); 

这段代码使我工作。希望它也能帮助其他人。归功于用户@Syscall

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。