我有一个循环,它在每次迭代中需要大量文本,并用其他一些内容替换特定的占位符('token'),如下所示:
$string = $pageContent;
foreach($categories as $row) {
$images = $mdlGallery->getByCategory($row['id']);
if (!empty($images)) {
$plug = Plugin::get('includes/gallery', array('rows' => $images));
$string = str_replace($row['token'], $plug, $string);
}
}
Plugin 类及其 get() 方法只是从特定目录中获取正确的文件并将缓冲区作为字符串输出。
可能有大量类别,因此我想知道在使用 strpos() 函数填充给定类别中的所有图像之前,首先检查输入字符串是否出现特定“令牌”是否更好,如下所示:
foreach($categories as $row) {
if (strpos($string, $row['token']) !== false) {
$images = $mdlGallery->getByCategory($row['id']);
if (!empty($images)) {
$plug = Plugin::get('includes/gallery', array('rows' => $images));
$string = str_replace($row['token'], $plug, $string);
}
}
}
我关心的是性能——这有帮助吗?- 考虑 $string 可能包含大量字符(MySQL 中的 TEXT 字段类型)?