我看过,无法找到我们想写的这个功能的解决方案。我是PHP的新手,所以我们非常感谢任何帮助,建议和代码示例。
让我解释一下我们想做什么......
我们在字符串中有一个HTML块 - 内容最多可达2000个单词,其中样式包括此HTML内容字符串中包含的<p>
,<ul>
,<h2>
。< / p>
我们还在一个单独的字符串中有一个与此内容相关的图像数组。
我们需要将数组字符串中的图像添加到相同空格的HTML内容中,而不会破坏HTML代码。因此,简单的字符数不会起作用,因为它可能会破坏HTML标记。
我们需要同等地分隔图像。所以,例如;如果HTML内容字符串中有2000个单词,数组中有10个图像,我们需要每200个单词放置一个图像。
为了实现这一目标而提供的任何帮助或编码样本都非常感谢 - 感谢您的帮助。
答案 0 :(得分:0)
您可以使用
$numword = str_word_count($str, 0);
获取行数
或
$array = str_word_count($str,1);
用于获取$ array包含所有单词的数组(一个用于索引),然后在此数组上迭代以重建文本,您需要为图像添加每个时间(单词)代码
此示例是php手册
<?php $str = "Hello fri3nd, you're looking good today!"; print_r(str_word_count($str, 1)); print_r(str_word_count($str, 2)); print_r(str_word_count($str, 1, 'àáãç3')); echo str_word_count($str); ?>
这是相关结果
Array ( [0] => Hello [1] => fri [2] => nd [3] => you're [4] => looking [5] => good [6] => today ) Array ( [0] => Hello [6] => fri [10] => nd [14] => you're [29] => looking [46] => good [51] => today ) Array ( [0] => Hello [1] => fri3nd [2] => you're [3] => looking [4] => good [5] => today ) 7
您可以在this doc
中找到它对于插入,您可以尝试这种方式
$num = 200; // number of word after which inert the image
$text = $array[0]; // initialize the text with the first word in array
for ($cnt =1; $cnt< count( $array); $cnt++){
$text .= $array[$cnt]; // adding the word to the text
if (($cnt % $num) == 0) { // if array index multiple fo 200 insert the image
$text .= "<img src='your_img_path' >";
}
}