14,974
edits
mNo edit summary |
mNo edit summary |
||
| (8 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Considerations of multi-languages Interpreter integration | Considerations of multi-languages Interpreter integration e.g. PHP calling Python | ||
== PHP calling Python == | |||
Input / Output | Input / Output | ||
* ill-formed input and output | * ill-formed input and output | ||
Process | |||
* Print the percentage of data processing | |||
Unexpected conditions / errors | Unexpected conditions / errors | ||
| Line 8: | Line 12: | ||
** Run the script from web browser: timeout<ref>[https://stackoverflow.com/questions/5798707/browser-timeouts Browser Timeouts - Stack Overflow]</ref>/crash | ** Run the script from web browser: timeout<ref>[https://stackoverflow.com/questions/5798707/browser-timeouts Browser Timeouts - Stack Overflow]</ref>/crash | ||
** Run the script from command line: length limit e.g. | ** Run the script from command line: length limit e.g. | ||
*** On {{Win}} <ref>[https://support.microsoft.com/en-us/help/830473/command-prompt-cmd--exe-command-line-string-limitation Command prompt (Cmd. exe) command-line string limitation] when error message 'The command line is too long.' met on windows.</ref>: 8191 characters | *** On {{Win}} XP<ref>[https://support.microsoft.com/en-us/help/830473/command-prompt-cmd--exe-command-line-string-limitation Command prompt (Cmd. exe) command-line string limitation] when error message 'The command line is too long.' met on windows.</ref>: 8191 characters | ||
*** On {{Mac}} high Sierra<ref>[https://serverfault.com/questions/69430/what-is-the-maximum-length-of-a-command-line-in-mac-os-x mac osx - What is the maximum length of a command line in Mac OS X? - Server Fault]</ref>: 262144 returned after keyin {{kbd | key=getconf ARG_MAX}} | *** On {{Mac}} high Sierra<ref>[https://serverfault.com/questions/69430/what-is-the-maximum-length-of-a-command-line-in-mac-os-x mac osx - What is the maximum length of a command line in Mac OS X? - Server Fault]</ref>: 262144 returned after keyin {{kbd | key=getconf ARG_MAX}} | ||
| Line 14: | Line 18: | ||
** First interpreter timeout/crash: e.g. First interpreter (.PHP) is timeout but second interpreter (.PY) is still running. | ** First interpreter timeout/crash: e.g. First interpreter (.PHP) is timeout but second interpreter (.PY) is still running. | ||
** Second interpreter timeout/crash | ** Second interpreter timeout/crash | ||
** Process management: Monitor and recycle the process | |||
* System level | * System level | ||
** e.g. memory error caused by second interpreter | ** e.g. memory error caused by second interpreter | ||
* API level | * API level | ||
== PHP calling MySQL == | |||
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<ref>[https://dev.mysql.com/doc/refman/8.4/en/hexadecimal-literals.html MySQL :: MySQL 8.4 Reference Manual :: 11.1.4 Hexadecimal Literals]</ref> 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 | |||
<pre> | |||
function toHexadecimal($text) { | |||
if (!mb_check_encoding($text, 'UTF-8')) { | |||
$text = mb_convert_encoding($text, 'UTF-8', 'auto'); | |||
} | |||
return '0x' . strtoupper(bin2hex($text)); | |||
} | |||
</pre> | |||
== References == | == References == | ||
| Line 24: | Line 53: | ||
== Related articles == | == Related articles == | ||
* [https://stackoverflow.com/questions/34957283/how-to-properly-call-python-3-script-from-php How to properly call Python 3 script from PHP? - Stack Overflow] | * [https://stackoverflow.com/questions/34957283/how-to-properly-call-python-3-script-from-php How to properly call Python 3 script from PHP? - Stack Overflow] | ||
* [https://stackoverflow.com/questions/4977125/passing-value-from-php-script-to-python-script Passing value from PHP script to Python script - Stack Overflow] | |||
* [https://www.r-bloggers.com/integrating-php-and-r/ Integrating PHP and R | R-bloggers] {{access | date = 2017-12-18}} | * [https://www.r-bloggers.com/integrating-php-and-r/ Integrating PHP and R | R-bloggers] {{access | date = 2017-12-18}} | ||
* [http://php.net/manual/en/function.set-time-limit.php PHP: set_time_limit - Manual] | * [http://php.net/manual/en/function.set-time-limit.php PHP: set_time_limit - Manual] | ||
* [https://stackoverflow.com/questions/27863484/run-python-script-from-php-save-process-pid-and-dont-wait-it-to-finish Run Python script from php, save process pid, and don't wait it to finish - Stack Overflow] ''un-verified'' | * [https://stackoverflow.com/questions/27863484/run-python-script-from-php-save-process-pid-and-dont-wait-it-to-finish Run Python script from php, save process pid, and don't wait it to finish - Stack Overflow] ''un-verified'' | ||
* [https://stackoverflow.com/questions/1881582/whats-the-difference-between-escapeshellarg-and-escapeshellcmd php - What's the difference between escapeshellarg and escapeshellcmd? - Stack Overflow] | |||
* [[Execute php script in a bat file]] | |||
* [https://errerrors.blogspot.com/2018/08/run-java-jar-from-php.html 如果透過 PHP 網站呼叫 Java JAR 執行結果] | |||
[[Category:Programming]] [[Category:PHP]] [[Category:Python]] | [[Category: Programming]] | ||
[[Category: PHP]] | |||
[[Category: Python]] | |||
[[Category: MySQL]] | |||
[[Category: Revised with LLMs]] | |||