បញ្ជីអត្ថបទ
WordPress កំហុស PHP អាចបណ្តាលមកពីចន្លោះខ្មោច!
អ្វីដែលអ្នកសរសេរកម្មវិធីខ្លាចបំផុតគឺមិនមែនជាកំហុសនោះទេ ប៉ុន្តែការមានអារម្មណ៍របស់ពួកគេត្រូវបានលេងដោយកំហុស។
តក្កវិជ្ជាដែលអ្នកបានសរសេរគឺច្បាស់ណាស់ ប៉ុន្តែ PHP ផ្តល់ឱ្យអ្នកនូវ syntax errorវាដូចជាអ្នកយឺតពេលបីនាទីសម្រាប់ការណាត់ជួប ហើយអ្នកផ្សេងបែរមុខចេញ ហើយនិយាយថា "អ្នកមិនស្រឡាញ់ខ្ញុំទេ"។ អ្នកមានអារម្មណ៍ខុសរហូតចង់គប់ក្ដារចុច។

ហេតុអ្វីបានជា WordPress PHP រាយការណ៍អំពីកំហុស?
ប្រអប់បញ្ចូលដែលផ្តល់ដោយ PHP គឺ៖
syntax error, unexpected single-quoted string "wpturbo_handle_upload_convert_...", expecting ")"
បកប្រែទៅជាភាសាមនុស្ស វាមានន័យថា៖ ខ្ញុំកំពុងរំពឹងថានឹងមានតង្កៀបបិទ ប៉ុន្តែអ្នកបានបញ្ចូលតួអក្សរចម្លែកមួយមកក្នុងខ្ញុំ ជាមួយនឹងនិស្ស័យដែលមិនអាចពន្យល់បាន។
ដូច្នេះតើមានបញ្ហាអ្វី? វាមិនមែនជាតក្កវិជ្ជាមុខងាររបស់អ្នកទេ ប៉ុន្តែវាហាក់ដូចជាគ្មានកំហុស៖
add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');
ចន្លោះខ្មោចនៅក្នុងកូដ
ស្នូលនៃបញ្ហាគឺថានៅពេលអ្នកចម្លងនិងបិទភ្ជាប់កូដអ្នកលាយ ទំហំពេញ ឬ ចន្លោះទទឹងសូន្យ។
រឿងទាំងនេះគឺមើលមិនឃើញដោយភ្នែកទទេនៅក្នុងកម្មវិធីនិពន្ធ ប៉ុន្តែនឹងធ្វើឱ្យ PHP ឆ្កួតនៅពេលដែលវាត្រូវបានញែក។
វាដូចជាការញ៉ាំគុយទាវមួយចានយ៉ាងឆ្ងាញ់ពិសា ប៉ុន្តែស្រាប់តែអ្នកខាំគ្រាប់ខ្សាច់ ហើយខ្សែការពាររបស់អ្នកក៏ត្រូវបាក់ភ្លាមៗ។ នេះជាអារម្មណ៍របស់ PHP នៅពេលនេះ។
តើអ្វីជារបៀបសរសេរត្រឹមត្រូវ?
អ្វីដែលអ្នកត្រូវធ្វើគឺពិតជាសាមញ្ញណាស់។ ជំនួសកន្លែងខ្មោចទាំងនោះ ហើយរក្សាចន្លោះពាក់កណ្តាលទទឹងបំផុត។
កូដ WordPress ត្រឹមត្រូវមានដូចខាងក្រោម៖
add_filter('wp_handle_upload', 'wpturbo_handle_upload_convert_to_webp');
function wpturbo_handle_upload_convert_to_webp($upload) {
if (in_array($upload['type'], ['image/jpeg', 'image/png', 'image/gif'])) {
$file_path = $upload['file'];
if (extension_loaded('imagick') || extension_loaded('gd')) {
$image_editor = wp_get_image_editor($file_path);
if (!is_wp_error($image_editor)) {
// Set WebP quality (adjust as needed)
$quality = 80; // Adjust between 0 (low) to 100 (high)
$image_editor->set_quality($quality);
$file_info = pathinfo($file_path);
$dirname = $file_info['dirname'];
$filename = $file_info['filename'];
$def_filename = wp_unique_filename($dirname, $filename . '.webp');
$new_file_path = $dirname . '/' . $def_filename;
$saved_image = $image_editor->save($new_file_path, 'image/webp');
if (!is_wp_error($saved_image) && file_exists($saved_image['path'])) {
$upload['file'] = $saved_image['path'];
$upload['url'] = str_replace(basename($upload['url']), basename($saved_image['path']), $upload['url']);
$upload['type'] = 'image/webp';
@unlink($file_path);
}
}
}
}
return $upload;
}
តើអាចជៀសវាងស្ថានភាពនេះដោយរបៀបណា?
អ្នកប្រហែលជាឆ្ងល់ថាតើអ្នកត្រូវភ័យរាល់ពេលដែលអ្នកចម្លងនិងបិទភ្ជាប់? ចម្លើយគឺ៖ កុំភ័យស្លន់ស្លោ ប៉ុន្តែត្រូវឆ្លាត។
- ប្រើកម្មវិធីកែដែលអាចទុកចិត្តបាន ដូចជា VS Code ដែលអាចរំលេចតួអក្សរចម្លែកដោយស្វ័យប្រវត្តិ។
- នៅពេលបើកឯកសារ សូមព្យាយាមរក្សាទុកវានៅក្នុងការអ៊ិនកូដ UTF-8 ដែលអាចកាត់បន្ថយហានិភ័យនៃ "និមិត្តសញ្ញាខ្មោច" ពាក់កណ្តាល។
- ប្រសិនបើអ្នកពិតជាព្រួយបារម្ភ សូមបិទភ្ជាប់កូដដែលគួរឱ្យសង្ស័យទៅក្នុងឧបករណ៍អត្ថបទធម្មតា ហើយសម្អាតវា។
ដូចជាលាងសម្អាតបន្លែមុនហូបឆ្នាំងក្តៅ គ្រោះថ្នាក់ច្រើនអាចជៀសបាន។
សេចក្តីសន្និដ្ឋាន
កំហុសនេះអាចហាក់ដូចជាអាថ៌កំបាំង ប៉ុន្តែតក្កវិជ្ជារបស់វាច្បាស់ណាស់។ ការសរសេរកម្មវិធីគឺដូចជាការសរសេរកំណាព្យ។ វណ្ណយុត្តិ និងគម្លាតគឺជាព្រលឹងនៃចង្វាក់។ ចន្លោះមិនត្រឹមត្រូវតែមួយអាចបោះកូដចេញពីចង្វាក់ ដូចជាបំពង់ក្រៅបទភ្លេងស្រាប់តែលេចចេញក្នុងវង់ភ្លេង។
នៅពេលសរសេរកូដ យើងត្រូវបង្កើតប្រភេទនៃ "ភាពស្អាតស្អំនៃនិមិត្តសញ្ញា"។ មានតែតាមរយៈការសម្រេចបាននូវភាពល្អឥតខ្ចោះនៅក្នុងព័ត៌មានលម្អិតប៉ុណ្ណោះ ទើបអាចតក្កវិជ្ជាដំណើរការបានយ៉ាងរលូន។ទស្សនវិជ្ជាក្នុងន័យមួយ នេះក៏ជាការស្វែងរកភាពច្បាស់លាស់ និងសណ្តាប់ធ្នាប់ផងដែរ។
总结
មានបីចំណុចសំខាន់ៗ៖
- កំហុសមិនមែនជាបញ្ហាតក្កវិជ្ជាទេ ប៉ុន្តែជាចន្លោះខ្មោច។
- ការជួសជុលត្រឹមត្រូវគឺត្រូវជំនួសវាដោយចន្លោះពាក់កណ្តាលទទឹងស្តង់ដារ។
- អភិវឌ្ឍភាពស្អាតនៃកូដ និងនៅឱ្យឆ្ងាយពីតួអក្សរដែលលាក់។
ដូច្នេះ លើកក្រោយដែលអ្នកជួបប្រទះនូវកំហុសដែលហាក់ដូចជាមិនអាចពន្យល់បាន អ្នកក៏អាចសង្ស័យផងដែរ៖ តើមាន "ខ្មោច" នៅកន្លែងធ្វើការដែរឬទេ? ធ្វើសកម្មភាព សម្អាតពួកវា ហើយលេខកូដរបស់អ្នកនឹងដំណើរការយ៉ាងរលូន។
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) បានចែករំលែក "កំហុសវាក្យសម្ព័ន្ធ WordPress៖ មគ្គុទ្ទេសក៍ដ៏ល្អឥតខ្ចោះដើម្បីជួសជុលខ្សែអក្សរដែលបានដកស្រង់តែមួយដែលមិនរំពឹងទុក" ដែលប្រហែលជាមានប្រយោជន៍សម្រាប់អ្នក។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-33245.html
