史蒂夫-舟 2024-04-29 10:22 采纳率: 0%
浏览 5
已结题

【报错】使用火车头采集器的时候往文本之中均匀的插入图片

https://blog.csdn.net/u014401637/article/details/123542540

您好,我参考这篇文章,使用了这段代码,放入img.php,用于高铁采集器插件,但是运行的时候报错。

<?php

if(isset($LabelArray['内容'])){
  
  $count = substr_count($LabelArray['内容'],'</p>');
  
  $j = 0;
  $num = floor($count / 2);
  
  $tem_num = 0;
  for($i = 0; $i < $count; $i++){
 
             $j = strpos($LabelArray['内容'], '</p>', $j);
 
             if($i == 0){
    $LabelArray['内容'] = substr($LabelArray['内容'], 0, $j) . ('<img src="' .$LabelArray['图片1'] .'"  />') . substr($LabelArray['内容'], $j); 
    
    //这里因为插入过一次字符串到内容里了,所以需要从新定位一下
    $j = strpos($LabelArray['内容'], '</p>', $j);
    }else if($i == ($num)){
    $LabelArray['内容'] = substr($LabelArray['内容'], 0, $j) . ('<img src="' .$LabelArray['图片2'] .'"  />') . substr($LabelArray['内容'], $j);  
    //这里因为插入过一次字符串到内容里了,所以需要从新定位一下
    $j = strpos($LabelArray['内容'], '</p>', $j);
    }else if($i == ($count-1)){
     $LabelArray['内容'] = substr($LabelArray['内容'], 0, $j) . ('<img src="' .$LabelArray['图片3'] .'"  />') . substr($LabelArray['内容'], $j);  
    
    }
 
             $j = ($j+1);
 
       }
    
 } 

?>

报错提示:采集内容处理插件运行出错:您使用的PHP插件存在语法或其它问题,请检查!

到底是哪里出了问题?希望各位懂的,能帮忙解决一下,十分感谢~

如果这里沟通困难,也可以微信沟通,微信 hao4182238,谢谢~

  • 写回答

6条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-04-29 10:26
    关注

    🕖上午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:我心匪石,不可转也。

    您好,根据您的描述和提供的代码,错误可能出现在字符串处理上,特别是strpos()和字符串截取的部分。由于您提到插入图片后需要重新定位插入点,这可能导致 $j 的计算出现错误。让我们仔细检查一下代码:

    for($i = 0; $i < $count; $i++){
        $j = strpos($LabelArray['内容'], '</p>', $j);
        
        // 插入图片的位置判断
        if($i == 0 || $i == ($num) || $i == ($count - 1)){
            $LabelArray['内容'] = substr_replace($LabelArray['内容'], '<img src="'.$LabelArray['图片'.($i+1)].'" />', $j, 0);
            // 由于插入了新的字符串,更新插入点的位置
            $j = strpos($LabelArray['内容'], '</p>', $j);
        } else {
            $j = $j + 1;
        }
    }
    

    我将substr_replace函数替换为直接在$LabelArray['内容']中替换,这样可以避免多次调用substrstrpos。另外,$i+1确保了图片编号的正确性(从1开始计数)。

    请将上述代码替换到您的img.php文件中,然后重新运行看看是否还有错误。如果仍然存在问题,请提供详细的错误信息,以便更好地帮助您解决问题。如果微信沟通更方便,您可以把错误信息截图发给我,微信:hao4182238。祝好运!

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月29日
  • 创建了问题 4月29日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集