作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

@@ -94,33 +94,16 @@ class TranslateController extends BaseController @@ -94,33 +94,16 @@ class TranslateController extends BaseController
94 $routeMapModel = new RouteMap(); 94 $routeMapModel = new RouteMap();
95 $list = $routeMapModel->list(); 95 $list = $routeMapModel->list();
96 foreach ($list as $k => $v){ 96 foreach ($list as $k => $v){
97 - switch ($v['source']){  
98 - case RouteMap::SOURCE_INDEX:  
99 - $data[] = $this->user['domain'];  
100 - break;  
101 - case RouteMap::SOURCE_PRODUCT:  
102 - $data[] = $this->user['domain'].$v['route'].'/';  
103 - break;  
104 - case RouteMap::SOURCE_PRODUCT_CATE:  
105 - //todo::查看当前有好多页  
106 - $data[] = $this->user['domain'].$v['route'].'/';  
107 - break;  
108 - case RouteMap::SOURCE_BLOG:  
109 - $data[] = $this->user['domain'].$v['path'].'/'.$v['route'].'/';  
110 - break;  
111 - case RouteMap::SOURCE_BLOG_CATE:  
112 - $data[] = $this->user['domain'].RouteMap::PATH_BLOG_CATE.'/'.$v['route'].'/';  
113 - break;  
114 - case RouteMap::SOURCE_NEWS:  
115 - $data[] = $this->user['domain'].$v['path'].'/'.$v['route'].'/';  
116 - break;  
117 - case RouteMap::SOURCE_BLOG_CATE:  
118 - $data[] = $this->user['domain'].RouteMap::PATH_NEWS_CATE.'/'.$v['route'].'/';  
119 - break;  
120 - default:  
121 - $data[] = $this->user['domain'].$v['route'].'/';  
122 - break; 97 + if(!empty($v['path'])){
  98 + if($v['path'] == 'blog'){
  99 + $v['path'] = $v['path'].'s';
  100 + }
  101 + $route = $v['path'].'/'.$v['route'];
  102 + }else{
  103 + $route = $v['route'];
123 } 104 }
  105 + $data[] = $this->user['domain'].$route;
124 } 106 }
  107 + $this->response('success',Code::SUCCESS,$data);
125 } 108 }
126 } 109 }
@@ -135,6 +135,9 @@ class TranslateLogic extends BaseLogic @@ -135,6 +135,9 @@ class TranslateLogic extends BaseLogic
135 ]; 135 ];
136 $context = stream_context_create($contextOptions); 136 $context = stream_context_create($contextOptions);
137 $sourceCode = file_get_contents($url, false, $context); 137 $sourceCode = file_get_contents($url, false, $context);
  138 + // 过滤掉具有 "change-language-cont" 类的元素
  139 + $pattern = '/<div\b[^>]*\sclass=[\'"]([^\'"]*change-language-cont[^\'"]*)[\'"][^>]*>(.*?)<\/div>/is';
  140 + $sourceCode = preg_replace($pattern, '', $sourceCode);
138 $pattern = '/<style\b[^>]*>(.*?)<\/style>/s'; // 定义匹配`<style>`标签及其内容的正则表达式 141 $pattern = '/<style\b[^>]*>(.*?)<\/style>/s'; // 定义匹配`<style>`标签及其内容的正则表达式
139 $strippedContent = preg_replace($pattern, '', $sourceCode); // 删除`<style>`标签及其内容 142 $strippedContent = preg_replace($pattern, '', $sourceCode); // 删除`<style>`标签及其内容
140 $pattern = '/<script\b[^>]*>(.*?)<\/script>/s'; // 定义匹配`<script>`标签及其内容的正则表达式 143 $pattern = '/<script\b[^>]*>(.*?)<\/script>/s'; // 定义匹配`<script>`标签及其内容的正则表达式
@@ -147,30 +150,26 @@ class TranslateLogic extends BaseLogic @@ -147,30 +150,26 @@ class TranslateLogic extends BaseLogic
147 $textContentArray = array_filter($matches[1], function($item) { 150 $textContentArray = array_filter($matches[1], function($item) {
148 return !empty(trim($item)); 151 return !empty(trim($item));
149 }); 152 });
150 - $data = []; 153 + $contentData = [];
151 foreach ($textContentArray as $v){ 154 foreach ($textContentArray as $v){
152 $content = trim($v); 155 $content = trim($v);
153 $trimmedString = preg_replace('/\s+/', ' ', $content); 156 $trimmedString = preg_replace('/\s+/', ' ', $content);
154 - $data[] = $trimmedString; 157 + $contentData[] = $trimmedString;
  158 + }
  159 + $contentData = array_values($contentData);
  160 + $pattern = '/<meta\s+[^>]*content=[\'"]([^\'"]+)[\'"]/i'; // 匹配 meta 标签的 content 属性的正则表达式
  161 + $matches1 = array();
  162 + preg_match_all($pattern, $strippedContent, $matches1);
  163 + $metaData = array();
  164 + foreach ($matches1[1] as $content) {
  165 + if (!empty($content)) {
  166 + $metaData[] = $content;
  167 + }
155 } 168 }
156 - $data = array_values($data); 169 + $data = array_merge($metaData, $contentData);
157 return $data; 170 return $data;
158 } 171 }
159 172
160 - /**  
161 - * 翻译校对 dom  
162 - */  
163 - public function proofreadPhpQuery($url)  
164 - {  
165 - $html = file_get_contents($url);  
166 - $dom = \phpQuery::newDocument($html);  
167 - $dom->find('.change-language')->remove();  
168 - $dom->find('script')->remove();  
169 - $dom->find('style')->remove();  
170 - $test = $dom->text();  
171 - file_put_contents($url, $test);  
172 - $this->success($test);  
173 - }  
174 173
175 /** 174 /**
176 * @remark :获取Url内容 175 * @remark :获取Url内容
@@ -181,6 +181,7 @@ Route::middleware(['bloginauth'])->group(function () { @@ -181,6 +181,7 @@ Route::middleware(['bloginauth'])->group(function () {
181 Route::any('/', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'lists'])->name('translate_check_lists'); 181 Route::any('/', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'lists'])->name('translate_check_lists');
182 Route::any('/imageList', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'imageList'])->name('translate_checkg_imageList'); 182 Route::any('/imageList', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'imageList'])->name('translate_checkg_imageList');
183 Route::any('/save', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'save'])->name('translate_check_save'); 183 Route::any('/save', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'save'])->name('translate_check_save');
  184 + Route::any('/getUrl', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'getUrl'])->name('translate_check_getUrl');
184 }); 185 });
185 //seo设置 186 //seo设置
186 Route::prefix('seo')->group(function () { 187 Route::prefix('seo')->group(function () {