我怎样才能从数组中包含图像使用substr函数的字符串

问题描述:

我尝试从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://*.com/posts/46382213/edit,并提供每种情况下的值。 – chris85

你的$ 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