{"id":794,"date":"2025-06-11T23:51:20","date_gmt":"2025-06-11T15:51:20","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/794.html"},"modified":"2025-06-11T23:51:20","modified_gmt":"2025-06-11T15:51:20","slug":"laravel%ef%bc%9a%e5%a6%82%e4%bd%95%e5%9c%a8-blade-%e6%a8%a1%e6%9d%bf%e4%b8%ad%e6%98%be%e7%a4%ba-svg-%e5%9b%be%e7%89%87","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/794.html","title":{"rendered":"Laravel\uff1a\u5982\u4f55\u5728 Blade \u6a21\u677f\u4e2d\u663e\u793a SVG \u56fe\u7247"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#22312; Blade &#27169;&#26495;&#20013;&#26174;&#31034; SVG &#22270;&#29255;&#12290;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992; <code>&lt;img&gt;<\/code> &#26631;&#31614;<\/h3>\n<p>&#30452;&#25509;&#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992; <code>&lt;img&gt;<\/code> &#26631;&#31614;&#26469;&#21152;&#36733; SVG &#25991;&#20214;&#12290;<\/p>\n<pre><code class=\"language-blade\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Display SVG in Blade&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;img src=\"{{ asset('path\/to\/your\/image.svg') }}\" alt=\"SVG Image\"&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>asset()<\/code> &#20989;&#25968;&#29992;&#20110;&#29983;&#25104;&#27491;&#30830;&#30340; URL&#65292;&#20197;&#20415;&#22312;&#29983;&#20135;&#29615;&#22659;&#20013;&#27491;&#30830;&#24341;&#29992;&#36164;&#28304;&#25991;&#20214;&#12290;<\/p>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>url()<\/code> &#21644; <code>asset()<\/code> &#32452;&#21512;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#21160;&#24577;&#29983;&#25104; SVG &#30340; URL&#65292;&#21487;&#20197;&#20351;&#29992; <code>url()<\/code> &#21644; <code>asset()<\/code> &#32452;&#21512;&#12290;<\/p>\n<pre><code class=\"language-blade\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Dynamic SVG in Blade&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;img src=\"{{ url('\/path\/to\/your\/image.svg') }}\" alt=\"Dynamic SVG Image\"&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992; <code>file_get_contents<\/code> &#21644; <code>response()-&gt;streamAsBlob<\/code><\/h3>\n<p>&#22914;&#26524;&#20320;&#26377;&#26435;&#38480;&#35775;&#38382; SVG &#25991;&#20214;&#30340;&#26412;&#22320;&#36335;&#24452;&#65292;&#21487;&#20197;&#20351;&#29992; <code>file_get_contents<\/code> &#26469;&#35835;&#21462;&#25991;&#20214;&#20869;&#23481;&#65292;&#24182;&#23558;&#20854;&#20316;&#20026; Blob &#23545;&#35937;&#36820;&#22238;&#65292;&#28982;&#21518;&#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992; <code>response()-&gt;streamAsBlob<\/code>&#12290;<\/p>\n<pre><code class=\"language-php\">\/\/ &#25511;&#21046;&#22120;&#26041;&#27861;\npublic function displaySvg()\n{\n    $svgContent = file_get_contents(public_path('path\/to\/your\/image.svg'));\n    return response()-&gt;streamAsBlob($svgContent, 'image.svg');\n}<\/code><\/pre>\n<p>&#28982;&#21518;&#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992; <code>response()-&gt;streamAsBlob<\/code> &#36820;&#22238;&#30340; Blob &#23545;&#35937;&#12290;<\/p>\n<pre><code class=\"language-blade\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Stream As Blob SVG in Blade&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;script&gt;\n        fetch('{{ route('display-svg') }}')\n            .then(response =&gt; response.blob())\n            .then(blob =&gt; {\n                const img = document.createElement('img');\n                img.src = URL.createObjectURL(blob);\n                document.body.appendChild(img);\n            });\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#20197;&#19979;&#26159;&#19968;&#20010;&#23436;&#25972;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#20102;&#22914;&#20309;&#22312; Blade &#27169;&#26495;&#20013;&#20351;&#29992; <code>file_get_contents<\/code> &#21644; <code>response()-&gt;streamAsBlob<\/code> &#26469;&#26174;&#31034; SVG &#22270;&#29255;&#12290;<\/p>\n<p><strong>&#25511;&#21046;&#22120;<\/strong><\/p>\n<pre><code class=\"language-php\">use IlluminateHttpResponse;\n\npublic function displaySvg()\n{\n    $svgContent = file_get_contents(public_path('path\/to\/your\/image.svg'));\n    return response()-&gt;streamAsBlob($svgContent, 'image.svg');\n}<\/code><\/pre>\n<p><strong>Blade &#27169;&#26495;<\/strong><\/p>\n<pre><code class=\"language-blade\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Stream As Blob SVG in Blade&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;script&gt;\n        fetch('{{ route('display-svg') }}')\n            .then(response =&gt; response.blob())\n            .then(blob =&gt; {\n                const img = document.createElement('img');\n                img.src = URL.createObjectURL(blob);\n                document.body.appendChild(img);\n            });\n    &lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#36890;&#36807;&#36825;&#20123;&#26041;&#27861;&#65292;&#20320;&#21487;&#20197;&#22312; Laravel &#20013;&#28789;&#27963;&#22320;&#26174;&#31034; SVG &#22270;&#29255;&#12290;&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#39033;&#30446;&#32467;&#26500;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>SVG&#65288;&#21487;&#32553;&#25918;&#30690;&#37327;&#22270;&#24418;&#65289;&#65292;&#36890;&#24120;&#34987;&#31216;&#20026;SVG&#65292;&#26159;&#19968;&#31181;&#22522;&#20110;XML&#30340;&#22270;&#20687;&#26684;&#24335;&#65292;&#29992;&#20110;&#21019;&#24314;&#20108;&#32500;&#22270;&#24418;&#65292;&#36825;&#20123;&#22270;&#24418;&#21487;&#20197;&#26080;&#38480;&#32553;&#25918;&#32780;&#19981;&#20250;&#22833;&#30495;&#65292;&#20351;&#20854;&#25104;&#20026;&#21709;&#24212;&#24335;&#32593;&#39029;&#35774;&#35745;&#30340;&#29702;&#24819;&#36873;&#25321;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#35752;&#22914;&#20309;&#22312;Laravel&#26694;&#26550;&#20013;&#30340;Blade&#27169;&#26495;&#20013;&#39640;&#25928;&#22320;&#20351;&#29992;SVG&#22270;&#20687;&#12290;<\/p><h3>&#20026;&#20160;&#20040;&#20351;&#29992;SVGs&#65311;<\/h3><p>&#22312;&#32593;&#39029;&#24320;&#21457;&#20013;&#65292;SVGs&#65288;&#30690;&#37327;&#22270;&#24418;&#65289;&#25215;&#25285;&#30528;&#22810;&#31181;&#35282;&#33394;&#65292;&#20174;&#26631;&#24535;&#21040;&#22797;&#26434;&#25554;&#22270;&#65292;&#24471;&#30410;&#20110;&#20854;&#21487;&#32553;&#25918;&#24615;&#21644;&#36890;&#24120;&#27604;JPEG&#25110;PNG&#31561;&#20301;&#22270;&#22270;&#20687;&#26356;&#23567;&#30340;&#25991;&#20214;&#22823;&#23567;&#12290;&#27492;&#22806;&#65292;&#30001;&#20110;&#23427;&#20204;&#22522;&#20110;XML&#65292;&#22240;&#27492;&#21487;&#20197;&#20351;&#29992;CSS&#25110;JavaScript&#36827;&#34892;&#25805;&#20316;&#65292;&#20174;&#32780;&#23454;&#29616;&#20132;&#20114;&#24335;&#21644;&#21160;&#24577;&#30340;&#22270;&#24418;&#20869;&#23481;&#12290;<\/p><h2>&#22312;Blade&#27169;&#26495;&#20013;&#20351;&#29992;&#22522;&#26412;&#30340;SVG&#29992;&#27861;&#12290;<\/h2><p>&#35201;&#24320;&#22987;&#20351;&#29992;SVG&#22270;&#20687;&#65292;&#35831;&#21442;&#32771;&#20197;&#19979;&#27493;&#39588;&#65306;\n\n&#22312;Dreamweaver CC&#20013;&#65292;&#28857;&#20987;&ldquo;&#25554;&#20837;&rdquo;&#33756;&#21333;&#65292;&#28982;&#21518;&#36873;&#25321;&ldquo;&#22270;&#29255;&rdquo;&#65292;&#22312;&#24377;&#20986;&#30340;&#31383;&#21475;&#20013;&#36873;&#25321;&ldquo;&#33258;&#23450;&#20041;&#22823;&#23567;&rdquo;&#25110;&ldquo;&#33258;&#21160;&#35843;&#25972;&#22823;&#23567;&rdquo;&#12290;\n\n&#28857;&#20987;&ldquo;&#33258;&#23450;&#20041;&#22823;&#23567;&rdquo;&#65292;&#22312;&#24377;&#20986;&#30340;&#31383;&#21475;&#20013;&#36755;&#20837;SVG&#25991;&#20214;&#30340;URL&#22320;&#22336;&#12290;\n\n&#20445;&#23384;&#24182;&#20851;&#38381;&#25991;&#20214;&#21518;&#65292;&#22312;&#32593;&#39029;&#19978;&#23601;&#21487;&#20197;&#30475;&#21040;&#28155;&#21152;&#30340;SVG&#22270;&#20687;&#20102;&#12290;<\/p><pre><code>&lt;!-- resources\/views\/your_view.blade.php --&gt;\n&lt;div&gt;\n    {!! file_get_contents(public_path('images\/logo.svg')) !!}\n&lt;\/div&gt;\n<\/code><\/pre><p>&#24744;&#21487;&#20197;&#29992;&#12290;<code>file_get_contents<\/code>&#22312; PHP &#20013;&#65292;&#21487;&#20197;&#20351;&#29992; file_get_contents() &#20989;&#25968;&#26469;&#35835;&#21462; SVG &#25991;&#20214;&#30340;&#20869;&#23481;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;\n$svgContent = file_get_contents(&#8216;path\/to\/your\/svg\/file.svg&#8217;);\n&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#26681;&#25454;&#38656;&#35201;&#22788;&#29702;&#36825;&#20010; SVG &#20869;&#23481;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#23558;&#20854;&#36716;&#25442;&#20026; HTML &#25110;&#32773;&#36827;&#34892;&#20854;&#20182;&#25805;&#20316;&#12290;\n&#35831;&#27880;&#24847;&#65292;&#36825;&#21482;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#31034;&#20363;&#65292;&#23454;&#38469;&#20351;&#29992;&#26102;&#21487;&#33021;&#36824;&#38656;&#35201;&#32771;&#34385;&#26356;&#22810;&#30340;&#22240;&#32032;&#65292;&#27604;&#22914;&#25991;&#20214;&#36335;&#24452;&#26159;&#21542;&#27491;&#30830;&#12289;SVG &#25991;&#20214;&#26159;&#21542;&#23384;&#22312;&#31561;&#12290;<code>{!! !!}<\/code>&#22312;Blade&#27169;&#26495;&#20013;&#36755;&#20986;&#26410;&#36716;&#20041;&#30340;&#27880;&#37322;&#12290;<\/p><h2>SVG Blade Component &#26159;&#19968;&#20010; SVG &#22270;&#24418;&#32452;&#20214;&#65292;&#29992;&#20110;&#22312;&#32593;&#39029;&#19978;&#21019;&#24314;&#21644;&#26174;&#31034;&#21494;&#29255;&#24418;&#29366;&#30340;&#22270;&#26631;&#25110;&#22270;&#24418;&#20803;&#32032;&#12290;<\/h2><p>&#23545;&#20110;&#39057;&#32321;&#20351;&#29992;&#30340;&#24773;&#20917;&#65292;&#23553;&#35013;SVG&#21152;&#36733;&#36923;&#36753;&#20026;&#19968;&#20010;&#21487;&#37325;&#29992;&#30340;Blade&#32452;&#20214;&#20250;&#38750;&#24120;&#26377;&#24110;&#21161;&#12290;<\/p><pre><code>&lt;!-- resources\/views\/components\/svg.blade.php --&gt;\n@php\n    $svg = file_get_contents(public_path($name . '.svg'));\n@endphp\n{!! $svg !!}\n<\/code><\/pre><p>&#22312;&#12298;&#20992;&#38155;&#25112;&#22763;&#12299;&#20013;&#65292;&#20320;&#21487;&#20197;&#20687;&#36825;&#26679;&#20351;&#29992;&#36825;&#20010;&#32452;&#20214;&#65306;<\/p><pre><code>&lt;x-svg name=\"logo\" \/&gt;<\/code><\/pre><p>&#35813;&#32452;&#20214;&#36890;&#36807;&#21517;&#31216;&#35835;&#21462;&#25351;&#23450;&#30340;SVG&#25991;&#20214;&#24182;&#23558;&#20854;&#23884;&#20837;&#21040;HTML&#20013;&#12290;<\/p><h2>&#25511;&#21046;SVG&#26679;&#24335;<\/h2><p>&#23884;&#20837;&#24335;&#30340;SVG&#21487;&#20197;&#20351;&#29992;CSS&#31867;&#20284;&#22320;&#36827;&#34892;&#26679;&#24335;&#21270;&#12290;<\/p><pre><code>&lt;style&gt;\n    .svg-logo {\n        height: 50px;\n        width: auto;\n        fill: #3490dc;\n    }\n&lt;\/style&gt;\n\n&lt;!-- In Blade --&gt;\n&lt;div class=\"svg-logo\"&gt;\n    {!! file_get_contents(public_path('images\/logo.svg')) !!}\n&lt;\/div&gt;\n<\/code><\/pre><p>&#36825;&#31181;&#26041;&#27861;&#23558;&#20801;&#35768;&#23545;SVG&#20803;&#32032;&#36827;&#34892;&#32479;&#19968;&#27969;&#30021;&#30340;&#26679;&#24335;&#25511;&#21046;&#12290;<\/p><h2>&#32531;&#23384;SVG&#36755;&#20986;<\/h2><p>&#27599;&#35831;&#27714;&#37117;&#36820;&#22238;&#21407;&#22987;&#25991;&#20214;&#20869;&#23481;&#20250;&#23548;&#33268;&#24615;&#33021;&#19979;&#38477;&#12290;&#26356;&#22909;&#30340;&#20570;&#27861;&#26159;&#22312;&#26381;&#21153;&#31471;&#32531;&#23384;SVG&#36755;&#20986;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#22312;&#26381;&#21153;&#31471;&#21253;&#35013;SVG&#26469;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<code>file_get_contents<\/code>&#22312;Laravel&#30340;&#32531;&#23384;Facade&#20013;&#35843;&#29992;&#23427;&#26469;&#20570;&#21040;&#36825;&#19968;&#28857;&#65306;<\/p><pre><code>&lt;!-- resources\/views\/your_view.blade.php --&gt;\n{!! Cache::remember('svg.logo', 60*24, function() {\n    return file_get_contents(public_path('images\/logo.svg'));\n}) !!}\n<\/code><\/pre><p>&#36825;&#23558;&#25226;&#25991;&#20214;&#30340;&#36755;&#20986;&#23384;&#20648;&#22312;&#32531;&#23384;&#20013;&#65292;&#22312;&#21518;&#32493;&#35831;&#27714;&#26102;&#20174;&#37027;&#37324;&#25552;&#20379;&#12290;<\/p><h2>&#22312;Laravel&#20013;&#36827;&#34892;SVG&#28210;&#26579;&#30340;&#21253;&#12290;<\/h2><p>&#22914;&#26524;&#20320;&#24819;&#33719;&#24471;&#26356;&#39640;&#32423;&#30340;&#29305;&#24615;&#65292;&#27604;&#22914;&#22312;&#34892;SVG&#28210;&#26579;&#21644;&#25805;&#20316;&#65292;&#20320;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;Blade Icons&#36825;&#26679;&#30340;&#21253;&#12290;<\/p><pre><code>composer require blade-ui-kit\/blade-icons<\/code><\/pre><p>&#23433;&#35013;&#21518;&#65292;&#24744;&#21487;&#20197;&#23558;&#33258;&#23450;&#20041;&#30340;SVG&#25991;&#20214;&#28155;&#21152;&#21040;&#19987;&#29992;&#25991;&#20214;&#22841;&#20013;&#65292;&#24182;&#36890;&#36807;&#21253;&#25351;&#20196;&#24341;&#29992;&#23427;&#20204;&#65306;<\/p><pre><code>&lt;x-icon name=\"logo\" \/&gt;<\/code><\/pre><p>&#36825;&#20026;SVG&#25552;&#20379;&#20102;&#24178;&#20928;&#31616;&#27905;&#30340;&#35821;&#27861;&#12290;<\/p><h2>&#39640;&#32423;SVG&#25805;&#20316;<\/h2><p>&#22312;&#26356;&#22797;&#26434;&#30340;&#22330;&#26223;&#19979;&#65292;&#27604;&#22914;&#38656;&#35201;&#21160;&#24577;&#20462;&#25913;SVG&#30340;&#19968;&#37096;&#20998;&#26102;&#65292;&#21487;&#20197;&#32467;&#21512;Laravel&#30340;&#35270;&#22270;&#35013;&#39280;&#22120;&#21644;Blade&#32452;&#20214;&#26469;&#23454;&#29616;&#12290;<\/p><pre><code>&lt;!-- resources\/views\/components\/dynamic-svg.blade.php --&gt;\n@php\n    $svgContents = file_get_contents(public_path($name . '.svg'));\n    $svgContents = preg_replace('\/#originalColor\/', $color, $svgContents);\n@endphp\n{!! $svgContents !!}\n<\/code><\/pre><p>&#27491;&#22312;&#20351;&#29992;&#12290;<code>preg_replace<\/code>&#25105;&#20204;&#21487;&#20197;&#22312;&#28210;&#26579;&#20043;&#21069;&#21160;&#24577;&#26356;&#25913;SVG&#20013;&#30340;&#26576;&#20123;&#26041;&#38754;&#65292;&#20363;&#22914;&#22635;&#20805;&#39068;&#33394;&#12289;&#22823;&#23567;&#25110;XML&#20013;&#30340;&#20219;&#20309;&#23646;&#24615;&#12290;<\/p><h2>&#20445;&#25252;SVG&#20869;&#23481;<\/h2><p>&#22312;&#21152;&#36733;SVG&#25110;&#20854;&#20182;&#29992;&#25143;&#25552;&#20379;&#30340;&#20869;&#23481;&#26102;&#65292;&#23433;&#20840;&#24615;&#24212;&#35813;&#26159;&#39318;&#35201;&#32771;&#34385;&#30340;&#12290;&#22987;&#32456;&#30830;&#20445;SVG&#34987;&#23433;&#20840;&#22788;&#29702;&#20197;&#38450;&#27490;&#28508;&#22312;&#30340;XSS&#25915;&#20987;&#12290;&#23545;&#20110;&#23433;&#20840;&#21270;&#65292;&#24744;&#21487;&#20197;&#20351;&#29992;&#23458;&#25143;&#31471;&#30340;DOMPurify&#21253;&#25110;&#36873;&#25321;PHP&#35299;&#20915;&#26041;&#26696;&#65306;<\/p><pre><code>composer require enshrined\/svg-sanitize<\/code><\/pre><p>&#28982;&#21518;&#22312;&#36755;&#20986;&#21069;&#36827;&#34892;&#28040;&#27602;&#65306;<\/p><pre><code>$safeSVG = SVG::sanitize($dirtySVG); \n{!! $safeSVG !!}<\/code><\/pre><h2>&#32467;&#35770;<\/h2><p>&#20351;&#29992;SVG&#22312;Blade&#27169;&#26495;&#20013;&#23884;&#20837;&#21487;&#20197;&#22686;&#24378;&#24212;&#29992;&#31243;&#24207;&#30340;&#21487;&#25193;&#23637;&#24615;&#21644;&#21709;&#24212;&#24615;&#12290;&#26080;&#35770;&#26159;&#30452;&#25509;&#23884;&#20837;&#12289;&#36890;&#36807;&#32452;&#20214;&#12289;&#36827;&#34892;&#39640;&#32423;&#25805;&#20316;&#36824;&#26159;&#37197;&#22871;&#21253;&#65292;&#20851;&#38190;&#26159;&#35201;&#26126;&#26234;&#22320;&#20351;&#29992;&#23427;&#20204;&#20197;&#20248;&#21270;&#24615;&#33021;&#21644;&#23433;&#20840;&#24615;&#12290;&#22987;&#32456;&#29282;&#35760;&#21487;&#25193;&#23637;&#24615;&#21644;&#23433;&#20840;&#24615;&#65292;&#24182;&#19988;&#24744;&#30340;&#22270;&#24418;&#23558;&#22312;&#25152;&#26377;&#35774;&#22791;&#19978;&#38378;&#32768;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Laravel &#30340; Blade &#27169;&#26495;&#20013;&#26174;&#31034; SVG &#22270;&#29255;&#65292;&#20320;&#38656;&#35201;&#20351;&#29992; PHP &#30340; GD &#24211;&#26469;&#21152;&#36733;&#21644;&#28210;&#26579; SVG &#25991;&#20214;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312; Blade &#27169;&#26495;&#20013;&#26174;&#31034; SVG &#22270;&#29255;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>&#27493;&#39588; 1: &#21152;&#36733; SVG &#25991;&#20214;<\/h3>\n<p>&#39318;&#20808;&#65292;&#30830;&#20445;&#20320;&#30340;&#26381;&#21153;&#22120;&#19978;&#23433;&#35013;&#20102; PHP GD &#24211;&#65292;&#24182;&#19988;&#24050;&#32463;&#23558;&#23427;&#28155;&#21152;&#21040;&#39033;&#30446;&#30340;&#20381;&#36182;&#24211;&#20013;&#12290;&#22914;&#26524;&#27809;&#26377;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807; Composer &#23433;&#35013;&#12290;<\/p>\n<pre><code class=\"language-bash\">composer require php-fig\/php-fig-standalone<\/code><\/pre>\n<p>&#28982;&#21518;&#65292;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>images<\/code> &#30340;&#25991;&#20214;&#22841;&#65292;&#29992;&#20110;&#23384;&#25918; SVG &#25991;&#20214;&#12290;&#20363;&#22914;&#65292;&#20320;&#21487;&#20197;&#20026;&#20320;&#30340;&#39033;&#30446;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>example.svg<\/code> &#30340;&#25991;&#20214;&#12290;<\/p>\n<h3>&#27493;&#39588; 2: &#22312; Blade &#27169;&#26495;&#20013;&#24341;&#20837; SVG &#25991;&#20214;<\/h3>\n<p>&#22312;&#20320;&#30340; HTML &#39029;&#38754;&#20013;&#65292;&#20351;&#29992; <code>&lt;img&gt;<\/code> &#26631;&#31614;&#25554;&#20837; SVG &#22270;&#20687;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;img src=\"{{ asset('images\/example.svg') }}\" alt=\"SVG Image\"&gt;<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;<code>{{ asset('images\/example.svg') }}<\/code> &#26159;&#19968;&#20010; URL &#21253;&#21547; SVG &#25991;&#20214;&#36335;&#24452;&#30340;&#34920;&#36798;&#24335;&#12290;&#20320;&#38656;&#35201;&#30830;&#20445;&#36825;&#20010;&#36335;&#24452;&#25351;&#21521;&#20320;&#30340;&#26381;&#21153;&#22120;&#19978;&#20445;&#23384;&#30340; SVG &#25991;&#20214;&#12290;<\/p>\n<h3>&#27493;&#39588; 3: &#20351;&#29992; GD &#24211;&#28210;&#26579; SVG &#22270;&#20687;<\/h3>\n<p>&#35201;&#20174; SVG &#22270;&#20687;&#20013;&#25552;&#21462;&#20803;&#32032;&#24182;&#23558;&#20854;&#25554;&#20837;&#21040; HTML &#20013;&#65292;&#35831;&#20351;&#29992; PHP &#30340; GD &#24211;&#12290;&#36825;&#26159;&#19968;&#20010;&#31616;&#21333;&#30340;&#31034;&#20363;&#65292;&#23637;&#31034;&#22914;&#20309;&#20174; SVG &#22270;&#20687;&#20013;&#25552;&#21462;&#25991;&#26412;&#21644;&#22270;&#20687;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\/\/ &#39318;&#20808;&#65292;&#25105;&#20204;&#38656;&#35201;&#23548;&#20837; GD &#24211;&#12290;\nrequire 'vendor\/autoload.php';\n\nuse Imagick;\n\n$im = new Imagick('path_to_your_svg_file.jpg');\n$text = $im-&gt;getLayerByName('text_layer')-&gt;getText();\n\necho \"&lt;div&gt;&lt;h1&gt;$text&lt;\/h1&gt;&lt;\/div&gt;\";\n?&gt;<\/code><\/pre>\n<p>&#36825;&#27573;&#20195;&#30721;&#20250;&#36755;&#20986; SVG &#22270;&#24418;&#20013;&#30340;&#25991;&#26412;&#20869;&#23481;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24819;&#35201;&#26356;&#22797;&#26434;&#22320;&#22788;&#29702; SVG&#65292;&#27604;&#22914;&#20174; SVG &#22270;&#20687;&#20013;&#25552;&#21462;&#29305;&#23450;&#21306;&#22495;&#65288;&#22914;&#36793;&#26694;&#65289;&#65292;&#21487;&#20197;&#20351;&#29992; Imagick &#31867;&#30340; <code>extractImage()<\/code> &#26041;&#27861;&#12290;&#19979;&#38754;&#26159;&#19968;&#20010;&#20363;&#23376;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\nuse Imagick;\nuse ImagickInterface;\n\n$im = new Imagick('path_to_your_svg_file.jpg');\n\n\/\/ &#33719;&#21462; SVG &#25991;&#26412;&#23618;\n$textLayer = $im-&gt;getImageLayerByName('text_layer');\n\n\/\/ &#21019;&#24314;&#19968;&#20010;&#26032;&#30340; Imagick &#23545;&#35937;&#26469;&#22788;&#29702; SVG &#20869;&#23481;\n$svgContent = new Imagick($textLayer);\n\n\/\/ &#25552;&#21462; SVG &#25991;&#26412;\n$text = $svgContent-&gt;getText();\n\n\/\/ &#23558;&#25991;&#26412;&#20869;&#23481;&#36716;&#25442;&#20026; HTML\n$htmlText = '&lt;pre&gt;' . htmlspecialchars($text, ENT_QUOTES) . '&lt;\/pre&gt;';\n\necho \"&lt;div&gt;\" . $htmlText . \"&lt;\/div&gt;\";\n\n\/\/ &#20851;&#38381; SVG &#20869;&#23481;\n$svgContent-&gt;close();\n?&gt;<\/code><\/pre>\n<p>&#36825;&#23558;&#36755;&#20986;&#31867;&#20284;&#22914;&#19979;&#30340;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;pre&gt;\n    Hello World\n&lt;\/pre&gt;<\/code><\/pre>\n<p>&#36825;&#23601;&#26159;&#22914;&#20309;&#22312; Laravel &#30340; Blade &#27169;&#26495;&#20013;&#26174;&#31034; SVG &#22270;&#29255;&#30340;&#22522;&#26412;&#36807;&#31243;&#12290;&#26681;&#25454;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#65292;&#20320;&#21487;&#20197;&#25193;&#23637;&#36825;&#37096;&#20998;&#20195;&#30721;&#20197;&#28385;&#36275;&#26356;&#22810;&#22797;&#26434;&#30340;&#22270;&#24418;&#22788;&#29702;&#38656;&#27714;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#22312; Blade &#27169;&#038;#26..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-794","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/794","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=794"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=794"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=794"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}