2017-09-23 41 views
0

我嘗試從PHP數組中刪除一個字符串從指定長度的PHP substr()函數,但我的問題是,在某些情況下,該數組只包含圖像沒有單個字符串內容。我怎樣才能從數組中包含圖像使用substr函數的字符串

我的代碼:

<div class="ct f-light"> 
<?php 
    $num_char = 255; 
    $text = $in['content']; 
    echo substr($text, 0, $num_char) . '...'; 
?> 
</div> 

$in['content']是一個html。它是從CKEditor處理的,其中包含文本和圖像。

這是結果,如果數組只包含一個字符串:

enter image description here

,這是結果,如果它僅包含圖片:

enter image description here

我怎樣才能解決這個問題?

+0

你能提供兩個例子中的'$ in''content']'嗎?也許,不要削減它,而是隱藏你不想使用CSS的內容。 – chris85

+0

yes在。$ in ['content']是包含文本和圖像兩者的數組屬性。 –

+0

請編輯問題,https://stackoverflow.com/posts/46382213/edit,並提供每種情況下的值。 – chris85

回答

0

你的$ in ['content']是什麼樣的?它在HTML嗎?或者你是如何混合圖像和文字的?

如果你有,我會建議分開它們。 (分成不同的變量)這將是最乾淨的選擇。或者,你也可以搜索第一圖像標籤,然後在此之前,只能用文字,像這樣:

$num_char = 255; 
$text = explode('<img', $in['content'], 2)[0]; 
echo substr($text, 0, $num_char) . '...'; 

然後,您可能還需要檢查是否有一個空字符串。

如果您未使用html,請說明您正在使用的是什麼。 (另外,如果你沒有注意到,像<p>這樣的標籤將會計算到255個字符的限制,所以很可能會少於255個字符,這也可能導致錯誤的(不完整的)html。)

+0

yes $ in ['content']是一個html。它是從ckeditor處理的。實際上,如果我使用split()函數它是工作,但給我錯誤「功能拆分()已棄用」。所以我用爆炸和嘔吐罰款。謝謝你的解釋。 –

+0

對,它已被棄用,我會在我的答案中改變這一點。但是,由於它是html,所以我可能會首先清除它,因爲例如,您會遇到標籤不完整的問題。 (這可能會以明文形式顯示「 SourceOverflow

+0

既然這樣,你會介意關閉這個問題嗎?(接受這個答案)清理你的html是一個單獨的問題 – SourceOverflow

相關問題