Thursday, July 21, 2011

Web service in php

Most of the times it seems like developer are little bit confused about the webservice.



Webservice is nothing but the output in such a format so the technology going to use your webservice can manage it. Here i have tried to provide your all two solutions regarding the PHP web-service.
With use of below code, you can generate your desire output in XML as well in JSON format.





You can call this file to get XML output format, by typing http://localhost/index.php?user=1&num=10


To get output in json format, you can type http://localhost/index.php?user=1&num=10&format=json


index.php





/* require the user as the parameter */
if(isset($_GET['user']) && intval($_GET['user'])) {

/* soak in the passed variable or set our own */
$number_of_posts = isset($_GET['num']) ? intval($_GET['num']) : 10; //10 is the default
$format = strtolower($_GET['format']) == 'json' ? 'json' : 'xml'; //xml is the default
$user_id = intval($_GET['user']); //no default

/* connect to the db */
$link = mysql_connect('DATBASE_HOST','DATABASE_USER','DATABASE_PASSWORD') or die('Cannot connect to the DB');
mysql_select_db('DATABASE_NAME',$link) or die('Cannot select the DB');

/* grab the posts from the db */
$query = "SELECT * FROM user WHERE userID = $user_id ORDER BY orderKey DESC LIMIT $number_of_posts";
$result = mysql_query($query,$link) or die('Errant query: '.$query);

/* create one master array of the records */
$posts = array();
if(mysql_num_rows($result)) {
while($post = mysql_fetch_assoc($result)) {
//print_r($post);
$posts[] = array('post'=>$post);
}
}


/* output in necessary format */
if($format == 'json') {
//header('Content-type: application/json');
echo json_encode(array('posts'=>$posts));
echo "
";
print_r(json_decode(json_encode(array('posts'=>$posts))));
}
else {
header('Content-type: text/xml');
echo '';
foreach($posts as $index => $post) {
if(is_array($post)) {
foreach($post as $key => $value) {
echo '<',$key,'>';
if(is_array($value)) {
foreach($value as $tag => $val) {
echo '<',$tag,'>',htmlentities($val),'';
}
}
echo '';
}
}
}
echo '
';
}

/* disconnect from the db */
@mysql_close($link);
}?>

No comments:

Post a Comment