作者 zhl

修改特殊前后缀跳过

@@ -508,31 +508,66 @@ class UpdateSeoTdk extends Command @@ -508,31 +508,66 @@ class UpdateSeoTdk extends Command
508 508
509 $project = Project::find($project_id); 509 $project = Project::find($project_id);
510 #TODO 2025-05-16 发现{qz_x}{hz_x} 已经应用到其他指令里面,去掉限制 510 #TODO 2025-05-16 发现{qz_x}{hz_x} 已经应用到其他指令里面,去掉限制
511 - if (!in_array(8, explode(',', $project->deploy_optimize->special))) {  
512 - // 前缀关键词  
513 - if (preg_match_all("/\{qz_(\d+)\}/", $prompt, $matches)) {  
514 - foreach ($matches[0] as $key => $val) { 511 + if (preg_match_all("/\{qz_(\d+)\}/", $prompt, $matches)) {
  512 + foreach ($matches[0] as $key => $val) {
  513 + if (!in_array(8, explode(',', $project->deploy_optimize->special))) {
515 $keyword = $this->getPrefixKeyword($project_id, 'prefix', $matches[1][$key]); 514 $keyword = $this->getPrefixKeyword($project_id, 'prefix', $matches[1][$key]);
516 if (!$keyword) { 515 if (!$keyword) {
517 echo getmypid() . ' ' . '前缀关键词为空 跳过' . PHP_EOL; 516 echo getmypid() . ' ' . '前缀关键词为空 跳过' . PHP_EOL;
518 return false; 517 return false;
519 } 518 }
520 $prompt = str_replace($val, $keyword, $prompt); 519 $prompt = str_replace($val, $keyword, $prompt);
  520 + } else {
  521 + echo getmypid() . ' ' . '特殊前后缀项目,指令中有前缀变量 跳过' . PHP_EOL;
  522 + return false;
521 } 523 }
522 } 524 }
523 - // 后缀关键词  
524 - if (preg_match_all("/\{hz_(\d+)\}/", $prompt, $matches)) {  
525 - foreach ($matches[0] as $key => $val) { 525 + }
  526 + // 后缀关键词
  527 + if (preg_match_all("/\{hz_(\d+)\}/", $prompt, $matches)) {
  528 + foreach ($matches[0] as $key => $val) {
  529 + if (!in_array(8, explode(',', $project->deploy_optimize->special))) {
526 $keyword = $this->getPrefixKeyword($project_id, 'suffix', $matches[1][$key]); 530 $keyword = $this->getPrefixKeyword($project_id, 'suffix', $matches[1][$key]);
527 if (!$keyword) { 531 if (!$keyword) {
528 - echo getmypid() . ' ' . '缀关键词为空 跳过' . PHP_EOL; 532 + echo getmypid() . ' ' . '缀关键词为空 跳过' . PHP_EOL;
529 return false; 533 return false;
530 } 534 }
531 $prompt = str_replace($val, $keyword, $prompt); 535 $prompt = str_replace($val, $keyword, $prompt);
  536 + } else {
  537 + echo getmypid() . ' ' . '特殊前后缀项目,指令中有后缀变量 跳过' . PHP_EOL;
  538 + return false;
532 } 539 }
  540 +
533 } 541 }
534 } 542 }
535 543
  544 +// $project = Project::find($project_id);
  545 +// #TODO 2025-05-16 发现{qz_x}{hz_x} 已经应用到其他指令里面,去掉限制
  546 +// if (!in_array(8, explode(',', $project->deploy_optimize->special))) {
  547 +// // 前缀关键词
  548 +// if (preg_match_all("/\{qz_(\d+)\}/", $prompt, $matches)) {
  549 +// foreach ($matches[0] as $key => $val) {
  550 +// $keyword = $this->getPrefixKeyword($project_id, 'prefix', $matches[1][$key]);
  551 +// if (!$keyword) {
  552 +// echo getmypid() . ' ' . '前缀关键词为空 跳过' . PHP_EOL;
  553 +// return false;
  554 +// }
  555 +// $prompt = str_replace($val, $keyword, $prompt);
  556 +// }
  557 +// }
  558 +// // 后缀关键词
  559 +// if (preg_match_all("/\{hz_(\d+)\}/", $prompt, $matches)) {
  560 +// foreach ($matches[0] as $key => $val) {
  561 +// $keyword = $this->getPrefixKeyword($project_id, 'suffix', $matches[1][$key]);
  562 +// if (!$keyword) {
  563 +// echo getmypid() . ' ' . '前缀关键词为空 跳过' . PHP_EOL;
  564 +// return false;
  565 +// }
  566 +// $prompt = str_replace($val, $keyword, $prompt);
  567 +// }
  568 +// }
  569 +// }
  570 +
536 // 多个核心关键词 571 // 多个核心关键词
537 if(strpos($prompt, '{core keywords 8}') !== false) { 572 if(strpos($prompt, '{core keywords 8}') !== false) {
538 $main_keyword = $this->mainKeywords($project_id, 8); 573 $main_keyword = $this->mainKeywords($project_id, 8);