လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> file_get_contents အမှားများကိုရှောင်ရှားရန်ပြင်ပဖိုင်များကိုမဖတ်မီ cprepe_cntrl နှင့် compepe_cntrl နှင့် controte_cntrl နှင့်မည်သို့စစ်ဆေးရမည်နည်း။

file_get_contents အမှားများကိုရှောင်ရှားရန်ပြင်ပဖိုင်များကိုမဖတ်မီ cprepe_cntrl နှင့် compepe_cntrl နှင့် controte_cntrl နှင့်မည်သို့စစ်ဆေးရမည်နည်း။

M66 2025-08-07
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// -------------------------------------------</span></span><span>
</span><span><span class="hljs-comment">// ပြင်ပဖိုင်များကိုမဖတ်မီ၎င်းကိုမည်သို့အသုံးပြုရမည်နည်း ctype_cntrl ထိန်းချုပ်မှုဇာတ်ကောင်စစ်ဆေးပါ,ရေှာင်ရှား file_get_contents အမှားတစ်ခုဖြစ်ပွားခဲ့သည်?</span></span><span>
</span><span><span class="hljs-comment">// -------------------------------------------</span></span><span>

</span><span><span class="hljs-comment">// တည်နေ PHP အလယ်ပိုင်း,file_get_contents ဖိုင်အကြောင်းအရာများကိုဖတ်ရန်ဘုံ function တစ်ခုဖြစ်သည်,ဖိုင်တွင်အချို့သောထိန်းချုပ်မှုဇာတ်ကောင်များပါ 0 င်သည်,စာဖတ်ခြင်းလုပ်ငန်းစဉ်အတွင်းမမျှော်လင့်သောအခြေအနေသို့မဟုတ်အမှားတစ်ခုဖြစ်နိုင်သည်。</span></span><span>
</span><span><span class="hljs-comment">// 为了ရေှာင်ရှား这种问题,可以တည်နေ读取文件前,ပထမ ဦး ဆုံးကိုသုံးပါ ctype_cntrl Function သည်ဖိုင်အကြောင်းအရာတွင်ထိန်းချုပ်မှုစာလုံးများပါ 0 င်သည်ကိုစစ်ဆေးသည်,ထို့ကြောင့်, လုပ်ငန်းစဉ်သို့မဟုတ် filter,အစီအစဉ်၏တည်ငြိမ်မှုကိုသေချာပါစေ。</span></span><span>

</span><span><span class="hljs-comment">// ထိန်းချုပ်မှုဇာတ်ကောင်တွေဘာတွေလဲ?</span></span><span>
</span><span><span class="hljs-comment">// ထိန်းချုပ်ရေးဇာတ်ကောင်ကိုရည်ညွှန်းသည် ASCII 码အလယ်ပိုင်း非打印字符,အကွာအဝေးများသောအားဖြင့်ဖြစ်ပါတယ် 0x00~0x1F နှင့် 0x7F,这些字符တည်နေ文本文件အလယ်ပိုင်း通常不应该出现,သို့မဟုတ်အထူးပုံစံလိုဂို。</span></span><span>

</span><span><span class="hljs-comment">// ဒီမှာသုံးနိုင်ပုံပါ ctype_cntrl ထိန်းချုပ်မှုဇာတ်ကောင် detect နှင့် filter ကို detect,သေချာအောင်လုပ်ပါ file_get_contents ပုံမှန်ဖတ်ပါ:</span></span><span>

</span><span><span class="hljs-comment">// 1. ဖိုင်၏မူရင်းအကြောင်းအရာကိုဖတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;
</span><span><span class="hljs-variable">$content</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-variable">$filename</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$content</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"ဖိုင်ကိုမဖတ်နိုင်ပါ: <span class="hljs-subst">$filename</span></span></span><span>");
}

</span><span><span class="hljs-comment">// 2. 遍历内容检查是否存တည်နေ控制字符</span></span><span>
</span><span><span class="hljs-comment">// ctype_cntrl တစ်ခုတည်းသောဇာတ်ကောင်တစ် ဦး သည်ထိန်းချုပ်မှုဇာတ်ကောင်ဟုတ်မဟုတ်စစ်ဆေးပါ,ထို့ကြောင့်၎င်းသည်ဇာတ်ကောင်ဖြင့်ဆုံးဖြတ်ရန်လိုအပ်သည်</span></span><span>
</span><span><span class="hljs-variable">$hasControlChars</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>;
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$content</span></span><span>); </span><span><span class="hljs-variable">$i</span></span><span>++) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">ctype_cntrl</span></span><span>(</span><span><span class="hljs-variable">$content</span></span><span>[</span><span><span class="hljs-variable">$i</span></span><span>])) {
        </span><span><span class="hljs-variable">$hasControlChars</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>;
        </span><span><span class="hljs-keyword">break</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// 3. စမ်းသပ်မှုရလဒ်များအရလုပ်ငန်းစဉ်</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$hasControlChars</span></span><span>) {
    </span><span><span class="hljs-comment">// ထိန်းချုပ်မှုဇာတ်ကောင်ရှိလျှင်,သင် filter ကိုရွေးချယ်နိုင်သည်</span></span><span>
    </span><span><span class="hljs-variable">$filteredContent</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
    </span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$content</span></span><span>); </span><span><span class="hljs-variable">$i</span></span><span>++) {
        </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">ctype_cntrl</span></span><span>(</span><span><span class="hljs-variable">$content</span></span><span>[</span><span><span class="hljs-variable">$i</span></span><span>])) {
            </span><span><span class="hljs-variable">$filteredContent</span></span><span> .= </span><span><span class="hljs-variable">$content</span></span><span>[</span><span><span class="hljs-variable">$i</span></span><span>];
        }
    }
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ထိန်းချုပ်မှုဇာတ်ကောင်ရှာဖွေတွေ့ရှိ,filtered အကြောင်းအရာ:\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$filteredContent</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-comment">// အဘယ်သူမျှမထိန်းချုပ်ဇာတ်ကောင်,အကြောင်းအရာကိုတိုက်ရိုက်သုံးပါ</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်အကြောင်းအရာပုံမှန်ဖြစ်ပါတယ်:\n"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$content</span></span><span>;
}

</span><span><span class="hljs-comment">// -------------------------------------------</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>