shell_exec中使用的PHP变量给出不同的结果

时间:2015-03-20 05:31:34

标签: php html post shell-exec

这是一个转贴,因为之前我的问题不够清楚并删除它以防止进一步混淆。

我有一个带有一个参数的shell脚本。它使用参数来cURL一个网站,然后使用grep,head和$ {variable#*>}从网站中提取一些数据。

在终端中,一切都可以正常使用以下命令。 $ stockCode是参数。 ./priceAlert.sh $ stockCode

我尝试将其转换为本地主机上的工作网页。 (MAMP osx)我尝试了不同的解决方案,但除了shell脚本之外,网站总是吐出“不是来自同一个来源”。

在搜索了如何将shell脚本与web集成后,我遇到了PHP,现在我正在弄清楚如何让PHP与我的shell脚本交谈。

我的项目结构:

  1. 带有表单内输入的HTML页面

    <form action="priceAlert.php" method="post">
        <input type="text" name="stockCode"></input>
        <input type="submit" name="submit" value="Submit me!">
    </form>
    
  2. 通过POST

    从HTML页面接收输入的PHP页面
    $stockCode2 = $_POST['stockCode'];
    echo $stockCode2;
    $output = shell_exec('sh priceAlert2.sh ' . $stockCode2);
    echo "<pre>$output</pre>";
    
  3. 现在有趣的部分...... HTML表单中$ stockCode2的值为033360。

    如果我使用$ stockCode2作为POST,那么shell脚本会提取我不想要的网站部分。 (上面的代码提取了我不想要的部分)

    如果我将值033360硬编码到$ stockCode2中,shell脚本会提取我想要的部分。下面的代码提取了我想要的网站部分。

        $stockCode2 = '033360';
        $output = shell_exec('sh priceAlert2.sh ' . $stockCode2);
        echo "<pre>$output</pre>";
    

    如果我回应所有内容,他们都会显示值033360,但表现不同。

    有没有办法解决这个问题?这可能是目标网站防止抓取的一种方式吗?

    谢谢。

0 个答案:

没有答案