Heterogeneity interpreter integration

From LemonWiki共筆
Jump to navigation Jump to search

Considerations of multi-languages Interpreter integration e.g. PHP calling Python

PHP calling Python[edit]

Input / Output

  • ill-formed input and output

Process

  • Print the percentage of data processing

Unexpected conditions / errors

  • Entry point
    • Run the script from web browser: timeout[1]/crash
    • Run the script from command line: length limit e.g.
      • On Win Os windows.png XP[2]: 8191 characters
      • On macOS icon_os_mac.png high Sierra[3]: 262144 returned after keyin getconf ARG_MAX
  • Interpreter level
    • First interpreter timeout/crash: e.g. First interpreter (.PHP) is timeout but second interpreter (.PY) is still running.
    • Second interpreter timeout/crash
    • Process management: Monitor and recycle the process
  • System level
    • e.g. memory error caused by second interpreter
  • API level


PHP calling MySQL[edit]

Purpose

  • PHP to generate mysqldump command for database backup and export operations with Chinese character support

Input / Output

  • Character encoding mismatch between PHP UTF-8 and MySQL client character sets
  • Hexadecimal representation[4] required for Chinese characters: '範例中文字' → 0xE7AF84E4BE8BE4B8ADE69687E5AD97
  • Export validation discrepancy: Expected xxx SQL queries

Process

  • Character set validation before MySQL command execution
  • Environment synchronization: PHP, Windows CMD, and MySQL client charset alignment
  • Hexadecimal conversion for non-ASCII parameter bypass
function toHexadecimal($text) {
	if (!mb_check_encoding($text, 'UTF-8')) {
		$text = mb_convert_encoding($text, 'UTF-8', 'auto');
	}
	return '0x' . strtoupper(bin2hex($text));
}

References[edit]

Related articles[edit]