英文をコマンドライン引数で送って実行させたいが、英文の場合半角スペースが含まれる為、引数が分かれてしまう。
例えば、「The official site of the Boston Celtics. Includes news, scores, schedules, statistics, photos and video」を引数で渡そうとして実行すると、第一引数は「The」のみになってしまう。
L 半角スペース(” “)の文頭に”\”があると、エスケープされて処理される。
$input = $request->input; $replace_input = str_replace(" ", "\ ", $input); $path = app_path() . "/python/en_ja.py"; $command = "python3 " . $path . " ".$replace_input; exec($command, $output); $output = $output[0];
上記のようにエスケープすると、英文でも引数として渡すことができる。
なるほど、中々面白いね。