簡體   English   中英

PHP substr防止由於html標簽引起的鏈接

[英]PHP substr prevents link due to html tag

我有一個博客網站,該網站列出了首頁上的所有最新博客,包括照片,有限的文字,然后是指向完整博客文章的文本鏈接。 問題是,如果我在博客文本中有一個標簽,它將妨礙博客鏈接。

我的意思是:

如果這是我的博客文章-“ Hello, I am wayne, writer of <a href="website.com">Bloggers Weekly</a> and this is my first article

我想將其縮寫為顯示40個字符,或者“您好,我是韋恩,Bloggers W ...的作家...閱讀更多”

Read More鏈接無法正確顯示,因為在原始html中已經有一個<a>標記,該標記會阻止第二個鏈接正常工作。 有沒有辦法解決?

您可以使用strip_tags從字符串中刪除HTML標簽。

在回顯博客文章之前,可以使用strip_tags刪除HTML標記。

echo substr(strip_tags($blog_post),0,40);

您可以在縮短字符串之前檢查開頭是否小於符號,或者如果要保留鏈接,則可以延長字符串。

$shortString = ($openPos = strpos($shortString, '<a')) !== false ? substr($shortString, 0 , ($openPos - 2) : substr($yourString,0,40);

這將在開幕前縮短它的時間

否則,如果您想保留鏈接,則可以使用相同的方法並擴展簡短說明

$shortString = ($closePos = strpos($yourString, '</a>')) !== false ? substr($yourString, 0 , ($closePos + 3) : substr($yourString,0,40);

我還沒有測試過,但是它應該保持鏈接完整。 請注意,如果關閉/打開“ a”標簽位於前40個字符之前,則這些字符串將使字符串少於40個字符。

相對於條形標簽,這樣做的好處是,如果您不希望將其作為鏈接,則不會在文本中留下應作為鏈接的內容。 即..不可單擊的“單擊此處”文本。

嘗試這個 ,

    $string = "Hello, I am wayne, writer of Bloggers Weekly and this is my first article";

           if (strlen($string) > 40) 
            {

                // truncate string
                $stringCut  = substr($string, 0, 40);
                $read_more = 'read more..'."<a href='website.com'>";                    
                $string     = substr($stringCut, 0, strrpos($stringCut, ' ')).$read_more;
            }

echo $string;

Read More鏈接無法正常工作,因為當您使用substr時,substr也包括部分錨標記。 因此,更好的方法是先刪除標簽,然后將錨標簽應用於“只讀”。

<?
echo substr(strip_tags($blog),0,40) . "<a href='#link'>Read More </a>";

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM