1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- namespace App\Distributor\Controllers;
- use App\Distributor\Metrics\DistMessage;
- use App\Distributor\Repositories\SiteMenu;
- use App\Http\Controllers\Controller;
- use Dcat\Admin\Layout\Column;
- use Dcat\Admin\Layout\Content;
- use Dcat\Admin\Layout\Row;
- class VisualEditorController extends Controller
- {
- public function index()
- {
- $mid = isset($_GET['mid'])? intval($_GET['mid']) : 0;
- $uri = isset($_GET['uri'])? $_GET['uri'] : '';
- //网站html内容
- $url = getSiteDomain();
- $html = $this->getURlHTML($url,$uri);
- //菜单
- $siteMenu = SiteMenu::showAllSelectOptions();
- //
- return view('distributor.pages-custom.visual-editor',['html'=>$html,'siteMenu'=>json_encode($siteMenu),'mid'=>$mid]);
- }
- private function getURlHTML($url,$uri)
- {
- //echo $url;exit;
- $siteUrl = $url . $uri;
- $ch = curl_init($siteUrl);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回原生的(Raw)输出
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查(在生产环境中,应将其设置为true并指定CA证书路径)
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 跳过证书主机名验证
- $html = curl_exec($ch);
- if (curl_errno($ch)) {
- echo 'cURL error: ' . curl_error($ch);
- }
- curl_close($ch);
- $pattern = '/<(link|script|img)[^>]*\s+(href|src)=["\'](\/[^"\']+)["\'][^>]*>/i';
- $replacement = function($matches) use ($url) {
- // $matches[3] 是匹配到的以 / 开头的路径
- return str_replace($matches[3], $url . $matches[3], $matches[0]);
- };
- $html = preg_replace_callback($pattern, $replacement, $html);
- return $html;
- }
- }
|