作者 刘锟

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

... ... @@ -94,33 +94,16 @@ class TranslateController extends BaseController
$routeMapModel = new RouteMap();
$list = $routeMapModel->list();
foreach ($list as $k => $v){
switch ($v['source']){
case RouteMap::SOURCE_INDEX:
$data[] = $this->user['domain'];
break;
case RouteMap::SOURCE_PRODUCT:
$data[] = $this->user['domain'].$v['route'].'/';
break;
case RouteMap::SOURCE_PRODUCT_CATE:
//todo::查看当前有好多页
$data[] = $this->user['domain'].$v['route'].'/';
break;
case RouteMap::SOURCE_BLOG:
$data[] = $this->user['domain'].$v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_BLOG_CATE:
$data[] = $this->user['domain'].RouteMap::PATH_BLOG_CATE.'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_NEWS:
$data[] = $this->user['domain'].$v['path'].'/'.$v['route'].'/';
break;
case RouteMap::SOURCE_BLOG_CATE:
$data[] = $this->user['domain'].RouteMap::PATH_NEWS_CATE.'/'.$v['route'].'/';
break;
default:
$data[] = $this->user['domain'].$v['route'].'/';
break;
if(!empty($v['path'])){
if($v['path'] == 'blog'){
$v['path'] = $v['path'].'s';
}
$route = $v['path'].'/'.$v['route'];
}else{
$route = $v['route'];
}
$data[] = $this->user['domain'].$route;
}
$this->response('success',Code::SUCCESS,$data);
}
}
... ...
... ... @@ -135,6 +135,9 @@ class TranslateLogic extends BaseLogic
];
$context = stream_context_create($contextOptions);
$sourceCode = file_get_contents($url, false, $context);
// 过滤掉具有 "change-language-cont" 类的元素
$pattern = '/<div\b[^>]*\sclass=[\'"]([^\'"]*change-language-cont[^\'"]*)[\'"][^>]*>(.*?)<\/div>/is';
$sourceCode = preg_replace($pattern, '', $sourceCode);
$pattern = '/<style\b[^>]*>(.*?)<\/style>/s'; // 定义匹配`<style>`标签及其内容的正则表达式
$strippedContent = preg_replace($pattern, '', $sourceCode); // 删除`<style>`标签及其内容
$pattern = '/<script\b[^>]*>(.*?)<\/script>/s'; // 定义匹配`<script>`标签及其内容的正则表达式
... ... @@ -147,30 +150,26 @@ class TranslateLogic extends BaseLogic
$textContentArray = array_filter($matches[1], function($item) {
return !empty(trim($item));
});
$data = [];
$contentData = [];
foreach ($textContentArray as $v){
$content = trim($v);
$trimmedString = preg_replace('/\s+/', ' ', $content);
$data[] = $trimmedString;
$contentData[] = $trimmedString;
}
$contentData = array_values($contentData);
$pattern = '/<meta\s+[^>]*content=[\'"]([^\'"]+)[\'"]/i'; // 匹配 meta 标签的 content 属性的正则表达式
$matches1 = array();
preg_match_all($pattern, $strippedContent, $matches1);
$metaData = array();
foreach ($matches1[1] as $content) {
if (!empty($content)) {
$metaData[] = $content;
}
$data = array_values($data);
}
$data = array_merge($metaData, $contentData);
return $data;
}
/**
* 翻译校对 dom
*/
public function proofreadPhpQuery($url)
{
$html = file_get_contents($url);
$dom = \phpQuery::newDocument($html);
$dom->find('.change-language')->remove();
$dom->find('script')->remove();
$dom->find('style')->remove();
$test = $dom->text();
file_put_contents($url, $test);
$this->success($test);
}
/**
* @remark :获取Url内容
... ...
... ... @@ -181,6 +181,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'lists'])->name('translate_check_lists');
Route::any('/imageList', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'imageList'])->name('translate_checkg_imageList');
Route::any('/save', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'save'])->name('translate_check_save');
Route::any('/getUrl', [\App\Http\Controllers\Bside\Setting\TranslateController::class, 'getUrl'])->name('translate_check_getUrl');
});
//seo设置
Route::prefix('seo')->group(function () {
... ...