javascript - 如何在 PHP 中防止 echo 并获取它里面的内容?

标签 javascript php android html

引用这篇文章how-to-prevent-echo-in-php-and-catch-what-it-is-inside我正在尝试从下面提到的 php 文件获取输出值,但我仍然可以看到这些值正在打印在我的 php 页面的输出中。任何其他建议也欢迎将我的 php 文件中的输出内容获取到字符串而不获取它回应。谢谢!

<?php include('Crypto.php')?>
<?php       
    $workingKey='XXXX';     //Working Key should be provided here.
    $encResponse=$_POST["encResp"];         //This is the response sent by the Server
    $rcvdString=decrypt($encResponse,$workingKey);      //Crypto Decryption used as per the specified working key.      
    $order_status="";
    $order_id=0;        
    $decryptValues=explode('&', $rcvdString);
    $dataSize=sizeof($decryptValues);
    echo "<center>";    
    for($i = 0; $i < $dataSize; $i++) 
    {
        $information=explode('=',$decryptValues[$i]);
        if($i==0)   $order_id = $information[1];
        if($i==1)   $tracking_id = $information[1];
        if($i==3)   $order_status = $information[1];
    }
       ob_start();
       echo $order_id."_";  
       $out1 = ob_get_contents();
      echo $tracking_id."_";
      $out2 = ob_get_contents();
      echo $order_status;
      $out3 = ob_get_contents();
      ob_end_clean();
      var_dump($out3);
?>

用于获取 HTML 格式的回显值的 JAVASCRIPT 代码

class MyJavaScriptInterface
        {
            @JavascriptInterface
            @SuppressWarnings("unused")
            public void processHTML(final String html)
            {


               String order_page = ""+Html.fromHtml(html);//process php output to html

               String CCAvenueOrder_id = order_page.split("\\_")[0];
               String CCAvenueTacking_id=order_page.split("\\_")[1];
               String CCAvenueOrderStatus=order_page.split("\\_")[2];


                // process the html as needed by the app
                String status = null;

                if(html.indexOf("Failure")!=-1){
                    status = "Transaction Declined!";
                }else if(html.indexOf("Success")!=-1){
                    status = "Transaction Successful!";
                }else if(html.indexOf("Aborted")!=-1){
                    status = " Transaction Cancelled!";
                }else{
                    status = "Status Not Known!";
                }
                //Toast.makeText(getApplicationContext(), status,     Toast.LENGTH_SHORT).show();
                Intent intent = new     Intent(getApplicationContext(),StatusActivity.class);

                startActivity(intent);
            }
        }

最佳答案

就像在问题的评论中一样,您可以将输入存储在变量中。输出缓冲区的使用不是必需的,至少在您的示例中不是这样。

<?php       
    $workingKey='XXXX';     //Working Key should be provided here.
    $encResponse=$_POST["encResp"];         //This is the response sent by the Server
    $rcvdString=decrypt($encResponse,$workingKey);      //Crypto Decryption used as per the specified working key.      
    $order_status="";
    $order_id=0;        
    $decryptValues=explode('&', $rcvdString);
    $dataSize=sizeof($decryptValues);
    $output = "<center>";    
    for ($i = 0; $i < $dataSize; $i++) {
        $information=explode('=',$decryptValues[$i]);
        if($i==0)   $order_id = $information[1];
        if($i==1)   $tracking_id = $information[1];
        if($i==3)   $order_status = $information[1];
    }
    $output .= $order_id."_";  
    $output .= $tracking_id."_";
    $output .= $order_status;
    echo $output; // response for ajax request as simple string
?>

如果这对您不起作用,请向我们展示正在回显的内容。

关于javascript - 如何在 PHP 中防止 echo 并获取它里面的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249563/

相关文章:

javascript - 有一个 div 固定并滚动它吗?

php - 部分ajax验证yii表单

php - 使用 PHP API 插入 MySQL 数据库

php - Postman:如何在Postman中执行Paypal CURL请求?

php - Symfony 动态子域

android - 如何返回到导航图的根?

android - 如何正确定义 v7 appcompat 依赖?

javascript - 如何使用 javascript 通过对象属性将数组拆分为数组?

javascript - IE9错误: SCRIPT5007: Unable to get value of the property 'ajax' : object is null or undefined

android - 如何在 genymotion 上运行 Google Map API V2