如何从返回的PHP结果中删除标签?

时间:2012-05-15 06:41:05

标签: php android

在我的Android应用程序中,我通过PHP脚本从我的MYSQL数据库返回一些数据,如果返回的结果为null:它将以这种格式返回到我的应用程序:

result<br /><font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'><tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined variable: output in C:\wamp\www\y.php on line <i>16</i></th></tr><tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr><tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr><tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0005</td><td bgcolor='#eeeeec' align='right'>368264</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp\www\y.php' bgcolor='#eeeeec'>..\y.php<b>:</b>0</td></tr></table></font>" not exist"

这个词:“不存在”我在我的php中通过if语句添加它来检查结果如果它为null,我想用“不存在”的字符串值替换它,并且在我的应用程序中我会处理它而不是处理将导致JSON异常的null值,因为此foramt中的null值或值无法解析为JSON数组 我的问题是:我如何删除结果返回的所有标签?如果$ output为null我用“not exist”替换它但是它没有以JSON格式返回,因为它有价值,为什么?请帮帮我,因为我是php新手......

php代码

$name=$_REQUEST['Name'];          
     mysql_connect("localhost","user","pass")or OnError('database connection failed', mysql_error());
    mysql_select_db("MYDB")or OnError('database selection failed', mysql_error($mysql));
    mysql_query("SET NAMES utf8"); 
   $sql=mysql_query("select  burnedCalories   from Exercise where  Name='$name' ");
   while($row=mysql_fetch_assoc($sql))
   $output[]=$row;
   if (is_null($output))  // if the exercise name not exist the result will be null
    {                                
      $output = ' not exist';
    }
    print(json_encode($output));
     mysql_close();
    define('DEBUG_DETAILS', true);
    function onError($msg, $details) {
    $msg = array(
    'status'=>'error',
    'message'=>$msg);
if ( defined('DEBUG_DETAILS') && DEBUG_DETAILS ) {
    $msg['details'] = $details;
}
die(json_encode($msg));}
     ?>

2 个答案:

答案 0 :(得分:0)

尝试使用

$text = strip_tags($text);

为此。这正是你所需要的。

http://www.php.net/manual/de/function.strip-tags.php

答案 1 :(得分:0)

很少有事情需要记住,其中一些是意见,但它们可能有所帮助:

<?php
// Constants are usually defined first and foremost, or stored in classes and accessed statically.
define('DEBUG_DETAILS', true);
function onError($msg, $details) {
    $msg = array('status'=>'error', 
                 'message'=>$msg);
    if( defined('DEBUG_DETAILS') && DEBUG_DETAILS ) {
        $msg['details'] = $details;
    }
    die(json_encode($msg));
}

// try to use the specific request method, and always sanitize!
$name = filter_var($_POST['Name'], FILTER_SANITIZE_STRING);

/* Best to put this into a separate file, but not necessary, of course.
    Handling MySQL errors should fail a bit more gracefully in a "live" environment,
    such as setting the 'error' field to your $output array to 'true'.
*/
mysql_connect("localhost","user","pass") or OnError('database connection failed', mysql_error());
mysql_select_db("MYDB") or OnError('database selection failed', mysql_error());
mysql_query("SET NAMES utf8"); 

$sql = mysql_query("SELECT burnedCalories FROM Exercise WHERE Name='$name'");

if(!$sql){
    // clear the $output by assigning an array
    onError("The query failed.", mysql_error());
}

// set the status
$output['status'] = 'result';

// otherwise... perform usual loop
while($row = mysql_fetch_assoc($sql))
    $output[] = $row;

print(json_encode($output));
mysql_close();
?>

当您将JSON结果返回给任何内容时,确保JSON字符串的结构具有类似的成员是有帮助的。

如果您的查询成功:

{
  status: 'result',
  {
    data: [
      'bench press': '900kCal/hr'
    ],
    [
      'pullup': '1100kCal/hr'
    ]
  }
}

如果没有:

{
  status: 'error',
  {
    data: [
      'reason': 'Database error.'
    ]
  }

这样,当您去设备,页面上提取数据时,无论您的最终结果是什么,您都可以使用一种格式,即getReason()getResultCode()等。