【问题标题】:How do I edit arguments within back-ticks in php?如何在 php 中编辑反引号内的参数?
【发布时间】:2018-07-08 16:06:09
【问题描述】:

所以我想要做的是利用 php 中的反引号运算符来运行一些将显示在我的 Apache 本地主机上的 python 代码。此 python 代码包含编辑参数的功能,但是当我尝试编辑参数时,我的 localhost 网站上没有任何内容。

我的代码:

<!DOCTYPE html>
<html>
<head>
  <title>Upload your files</title>
</head>
<body>
  <form enctype="multipart/form-data" action="upload.php" method="POST">
    <p>Upload your file</p>
    <input type="file" name="uploaded_file"></input><br />
    <input type="submit" value="Upload"></input>
  </form>
</body>
</html>
<?PHP
  if(!empty($_FILES['uploaded_file']))
  {
    $path = "uploads/";
    $path = $path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) {
      echo "The file ".  basename( $_FILES['uploaded_file']['name']). 
      " has been uploaded";
    } else{
        echo "There was an error uploading the file, please try again!";
    }
  }
?>
<?PHP 
   $python = `python classify_image.py --image_file C:\xampp\htdocs\uploads\bamboo.jpg`;
   echo $python;
?>

这是我在 Localhost 中看到的:

但是当我从反引号中删除“--image_file C:\xampp\htdocs\uploads\bamboo.jpg”时,python 代码将恢复为读取默认图像并在我的本地主机上返回:

谁能告诉我在 php 中使用反引号运算符有什么问题?

【问题讨论】:

  • 你试过exec()等吗?
  • “编辑参数”是什么意思?由于您在网络服务器中运行它,它无法提示用户输入。
  • @Barmar 我不是在寻找用户的输入。现在,我只想确保反引号在我可以更改 python 文件的输入的意义上起作用。编辑参数会改变输入。
  • 你可以在里面放一个变量:--image-file 'C:/xampp/htdocs/$path'
  • @Barmar,感谢您告诉我这一点,但我的主要问题是,在我在反引号中添加 --image-file 部分后,我的 python 代码似乎没有返回任何内容。跨度>

标签: php python apache shell arguments


【解决方案1】:

您可以在反引号内使用变量。

您还应该将classify_image.py 调用放在if 中,这样您只有在文件成功上传后才这样做。

并在路径名中使用正斜杠而不是反斜杠,或者将反斜杠加倍。在双引号和反引号中,反斜杠是转义前缀,导致路径名解析不正确。

<?PHP
  if(!empty($_FILES['uploaded_file']))
  {
    $path = "uploads/";
    $path = $path . basename( $_FILES['uploaded_file']['name']);
    if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $path)) {
      echo "The file ".  basename( $_FILES['uploaded_file']['name']). 
      " has been uploaded";
      $python = `python classify_image.py --image_file C:/xampp/htdocs/$path`;
      echo $python;
    } else{
        echo "There was an error uploading the file, please try again!";
    }
  }
?>

【讨论】:

    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 2021-08-07
    • 2018-08-30
    • 2018-02-09
    • 2017-09-29
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多