如何在php中将包含换行符的字符串传递给python

2024-05-08 18:10:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我用php编写了以下代码行,用于执行python屏幕。它从一个包含换行符的html文本区域接收文本

$string = $_POST['textarea']; // e.g. "String 1\n string 2\n"
$command = escapeshellcmd("python script.py -c \"$string\"");

当脚本.py执行时,python脚本只接收“string1”作为arg。我可以问一下,有没有什么本地的方法让我把绳子传过去?在

如果你觉得这是一个重复的问题,请告诉我在哪里可以找到这个答案。我在stackoverflow到处找。在


Tags: 代码py文本脚本区域string屏幕html
1条回答
网友
1楼 · 发布于 2024-05-08 18:10:26

我已经设法找到了一个办法。在

在php文件中,在调用escapeshellcmd之前,将所有换行替换为'\n'

$string = trim(preg_replace('/[\r\n]+/', '\n', $_POST['textarea']));

// For a string like:
// abcd
// defg
// will become
// abde\\ndefg

因为换行符'\n'已由php escapeshellcmd用前置斜杠转义。shell将能够处理字符串,python将接收abde\ndefg作为参数之一。 接下来在python代码中,我们只需使用下面的代码撤消转义

^{pr2}$

我希望以上的解决方案能够帮助那些和我一样面临类似问题的人。=)

相关问题 更多 >