ആർട്ടിക്കിൾ ഡയറക്ടറി
വേർഡ്പ്രൈസ് PHP പിശകുകൾ ഗോസ്റ്റ് സ്പെയ്സുകൾ മൂലമാകാം!
പ്രോഗ്രാമർമാർ ഏറ്റവും ഭയപ്പെടുന്നത് ബഗുകളെയല്ല, മറിച്ച് അവരുടെ വികാരങ്ങളെ ബഗുകൾ കളിക്കളത്തിൽ കളിക്കുന്നതിനെയാണ്.
നിങ്ങൾ എഴുതിയ യുക്തി വ്യക്തമായും നല്ലതാണ്, പക്ഷേ PHP നിങ്ങൾക്ക് ഒരു syntax errorഒരു ഡേറ്റിന് മൂന്ന് മിനിറ്റ് വൈകിയപ്പോൾ മറ്റേയാൾ മുഖം തിരിച്ച് "നീ എന്നെ സ്നേഹിക്കുന്നില്ല" എന്ന് പറയുന്നത് പോലെയാണ് ഇത്. നിങ്ങൾക്ക് വളരെ തെറ്റുപറ്റിയതായി തോന്നുന്നതിനാൽ കീബോർഡ് എറിയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു.

എന്തുകൊണ്ടാണ് വേർഡ്പ്രസ്സ് പിഎച്ച്പി ഒരു പിശക് റിപ്പോർട്ട് ചെയ്യുന്നത്?
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 ഇങ്ങനെയാണ് തോന്നുന്നത്.
അത് എഴുതാനുള്ള ശരിയായ രീതി എന്താണ്?
നിങ്ങൾ ചെയ്യേണ്ടത് വളരെ ലളിതമാണ്. ആ ഗോസ്റ്റ് സ്പെയ്സുകളെല്ലാം മാറ്റി പകരം ഏറ്റവും ശുദ്ധമായ പകുതി വീതിയുള്ള സ്പെയ്സുകൾ നിലനിർത്തുക.
ശരിയായ വേർഡ്പ്രസ്സ് കോഡ് ഇപ്രകാരമാണ്:
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 കോഡ് പോലുള്ള വിശ്വസനീയമായ ഒരു എഡിറ്റർ ഉപയോഗിക്കുക.
- ഒരു ഫയൽ തുറക്കുമ്പോൾ, അത് UTF-8 എൻകോഡിംഗിൽ സേവ് ചെയ്യാൻ ശ്രമിക്കുക, അത് "പ്രേത ചിഹ്നങ്ങളുടെ" അപകടസാധ്യത പകുതിയായി കുറയ്ക്കും.
- നിങ്ങൾക്ക് ശരിക്കും ആശങ്കയുണ്ടെങ്കിൽ, സംശയാസ്പദമായ കോഡ് ഒരു പ്ലെയിൻ ടെക്സ്റ്റ് ടൂളിൽ പേസ്റ്റ് ചെയ്ത് വൃത്തിയാക്കുക.
ചൂടുള്ള പാത്രം കഴിക്കുന്നതിനുമുമ്പ് പച്ചക്കറികൾ കഴുകുന്നത് പോലെ, ധാരാളം അപകടങ്ങൾ ഒഴിവാക്കാം.
ഉപസംഹാരം
ഈ പിശക് നിഗൂഢമായി തോന്നാമെങ്കിലും, അതിന്റെ യുക്തി വളരെ വ്യക്തമാണ്. പ്രോഗ്രാമിംഗ് കവിത എഴുതുന്നത് പോലെയാണ്; ചിഹ്നനവും അകലവും താളത്തിന്റെ ആത്മാവാണ്. ഒരു തെറ്റായ ഇടം കോഡിനെ താളം തെറ്റിച്ചേക്കാം, ഒരു ഓർക്കസ്ട്രയിൽ പെട്ടെന്ന് പ്രത്യക്ഷപ്പെടുന്ന ട്യൂൺ തെറ്റിയ ട്യൂബ പോലെ.
കോഡ് എഴുതുമ്പോൾ, നമ്മൾ ഒരുതരം "ചിഹ്ന ശുചിത്വം" വികസിപ്പിച്ചെടുക്കണം. വിശദാംശങ്ങളിൽ പൂർണത കൈവരിക്കുന്നതിലൂടെ മാത്രമേ യുക്തി സുഗമമായി പ്രവർത്തിക്കാൻ കഴിയൂ.തത്ത്വശാസ്ത്രംഒരർത്ഥത്തിൽ, ഇത് കൃത്യതയ്ക്കും ക്രമത്തിനും വേണ്ടിയുള്ള ഒരു പരിശ്രമം കൂടിയാണ്.
സംഗ്രഹിക്കാനായി
മൂന്ന് പ്രധാന കാര്യങ്ങൾ ഉണ്ട്:
- പിശക് ഒരു ലോജിക് പ്രശ്നമല്ല, മറിച്ച് ഒരു പ്രേത ഇടമാണ്.
- ശരിയായ പരിഹാരം അത് ഒരു സാധാരണ പകുതി വീതിയുള്ള സ്ഥലം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുക എന്നതാണ്.
- കോഡ് ശുചിത്വം വികസിപ്പിക്കുകയും മറഞ്ഞിരിക്കുന്ന പ്രതീകങ്ങളിൽ നിന്ന് അകന്നു നിൽക്കുകയും ചെയ്യുക.
അപ്പോൾ, അടുത്ത തവണ വിശദീകരിക്കാൻ കഴിയാത്ത ഒരു പിശക് നേരിടുമ്പോൾ, നിങ്ങൾ സംശയിച്ചേക്കാം: പ്രവർത്തനത്തിൽ ഒരു അദൃശ്യ "പ്രേതം" ഉണ്ടോ? നടപടിയെടുക്കുക, അവ വൃത്തിയാക്കുക, നിങ്ങളുടെ കോഡ് സുഗമമായി പ്രവർത്തിക്കും.
ഹോപ്പ് ചെൻ വെയ്ലിയാങ് ബ്ലോഗ് ( https://www.chenweiliang.com/ ) പങ്കിട്ടു "വേർഡ്പ്രസ്സ് വാക്യഘടന പിശക്: അപ്രതീക്ഷിതമായ ഒറ്റ-ഉദ്ധരിച്ച സ്ട്രിംഗ് പരിഹരിക്കുന്നതിനുള്ള ഒരു മികച്ച ഗൈഡ്" അത് നിങ്ങൾക്ക് സഹായകരമാകും.
ഈ ലേഖനത്തിന്റെ ലിങ്ക് പങ്കിടാൻ സ്വാഗതം:https://www.chenweiliang.com/cwl-33245.html
