A Guide to Mobile and Web Technology(LAMP)

Archive for October, 2009

List all the files in a directory in php

This code will display all the files in the images folder.

foreach (glob("images/*.*") as $filename) {
       echo basename($filename);
}

Google Search text code using php

The following lines of code will provide search results using the google search API.

//search text to be passes
	$search_text = "katharnavas";
	$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$search_text;

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	$results = curl_exec($ch);
	curl_close($ch);

	// The results will be in json encoded format so do a decode
	$json = json_decode($results);
	print_r($json);

How to update twitter status using php

The following lines of code are used to update your status in twitter.

//Text to be updated on twitter
$status = "Hi this is the text to be updated";
//your twitter username
$username = "xxxxusername";
//your twitter password
$password = "password";
$postvars = "status=".$status;
$url = "http://twitter.com/statuses/update.xml";</code>

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);  // DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // RETURN THE CONTENTS OF THE CALL
$res=curl_exec($ch);
curl_close($ch);

Database Manipulations in Android

The following code snippets heps you to manipulate database operations in Android.

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class UserDatabase{
	
    //Database Related Constants
    public static final String KEY_ROWID = "id";
    public static final String KEY_NAME = "name";
    public static final String KEY_PASSWD = "password";
    
    private static final String DATABASE_NAME = "UserDB";
    private static final String DATABASE_TABLE = "usertable";
    private static final int DATABASE_VERSION = 1;

    long id;
    Cursor c;

    private static final String DATABASE_CREATE =
        "create table "+DATABASE_TABLE+" (id integer primary key autoincrement, "
         +KEY_NAME+" text not null,"+KEY_PASSWD+" text not null);";

    private  final Context context;
    private DatabaseHelper DBHelper;
    private SQLiteDatabase sqlitedatabase;

    public UserDatabase(Context ctext){
    	context = ctext;    	
    }
    
    //Used to check and insert username and password in android's sqlite table
    public void insertUserDetails(String username, String password){
    	try {
			boolean isuserexists = false;
			//check whether the username has an entry already
			isuserexists = checkUserExists(username);
			DBHelper = new DatabaseHelper(context);
			sqlitedatabase = DBHelper.getWritableDatabase();
			
		       //insert the username and password in tables 
			if(isuserexists == false)	
				insertRow(username, password);
		    
			sqlitedatabase.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
    }
    
    
    //Function used to check whether a entry with same username available   
    public boolean checkUserExists(String username){
    	boolean userexists = false;
    	try {
			DBHelper = new DatabaseHelper(context);
			sqlitedatabase = DBHelper.getWritableDatabase();
			
			Cursor c = sqlitedatabase.rawQuery("select * from "+DATABASE_TABLE+" where "+KEY_NAME+"='"+username+"'", null);

			if (c.moveToFirst())
			{
			     do {
			    	 int index = c.getColumnIndex(KEY_NAME);
		     		 String name = c.getString(index);
		     		 if(username.equalsIgnoreCase(name)){
		     			 userexists = true;
		     			 sqlitedatabase.close();
		     			 return userexists;
		     		 }
			     } while (c.moveToNext());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}   
		sqlitedatabase.close();
    	return userexists;
    }
    
    //Function used to update the password for the specified username
    public void update_table(String name, String password){    	
    	try {
			DBHelper = new DatabaseHelper(context);
			sqlitedatabase = DBHelper.getWritableDatabase();			
			sqlitedatabase.execSQL("update "+DATABASE_TABLE+" set "+KEY_PASSWD+"='"+password+"' where "+KEY_NAME+"='"+name+"'");
			sqlitedatabase.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}   
    }
    
    
    //Database Helper Class
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        public void onCreate(SQLiteDatabase db)
        {
        	db.execSQL(DATABASE_CREATE);
        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {        	
            db.execSQL("DROP TABLE IF EXISTS titles");
            onCreate(db);
        }
    }

    public long insertRow(String name, String password)
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(KEY_NAME, name);
        initialValues.put(KEY_PASSWD, password);
        return sqlitedatabase.insert(DATABASE_TABLE, null, initialValues);
    }

    public Cursor getAllRows()
    {
        return sqlitedatabase.query(DATABASE_TABLE, new String[] {
                        KEY_ROWID, KEY_NAME, KEY_PASSWD},
                null, null, null, null, null);
    }

}

Read webpage or external file contents in php

The following are the different ways of reading a web page or external file contents in php.

$pageurl = "http://google.com";

//First Method

$r = new HTTPRequest($pageurl);
$html = $r->DownloadToString();
echo $html;

//Second Method

$html =file_get_contents($pageurl);
echo $html;

//Third Method (Using Curl) For this curl support should be enabled.

echo phpinfo();

//to check whether curl is enabled or not.

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_HEADER, 0);  
 // RETURN THE CONTENTS OF THE CALL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$res=curl_exec($ch);
curl_close($ch);
print_r($res[2]);

Email Validation using Php and Javascript

This function checks whether the email provided is valid and returns false if not valid.

Php Function for validating email

//$email -> email value to be validated.

function callEmailCheck($email, $strict = false)
{
$regex = $strict? '/^([.0-9a-z_-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i' : '/^([*+!.&amp;#$¦\'\\%\/0-9a-z^_`{}=?~:-]+)@(([0-9a-z-]+\.)+[0-9a-z]{2,4})$/i' ;
if (preg_match($regex, trim($email), $matches))    {
return array($matches[1], $matches[2]);
}
else {
return false;
}
}

This function checks whether the user email entered in the text box is valid or not. Call this function on submit.

Javascript Function for validating email

function callEmailCheck() {
var emailreg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//useremail is the name of the email text field.
var email = document.getElementById("useremail").value;
if(emailreg.test(email) == true){
return email;
}
return "";
}

Upload files from Mobile using Android

create a folder name uploads with 777 permission.

create a file name upload.php in the same folder where the uploads folder is created.

Place the code in the file named upload.php


$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

Client side code that is used to send file to a server. please include the following code in our client program.


private void doFileUpload(){

  HttpURLConnection conn = null;
  DataOutputStream dos = null;
  DataInputStream inStream = null;

 // The full path of filename which is to be uploaded to server
  String exsistingFileName = "test.mp3";
 
  String lineEnd = "\r\n";
  String twoHyphens = "--";
  String boundary =  "*****";


  int bytesRead, bytesAvailable, bufferSize;

  byte[] buffer;

  int maxBufferSize = 1*1024*1024;


  String responseFromServer = "";

  //Server path to the upload.php
  String urlString = "http://xxx.xxx.xxx.xxx/upload.php";


  try
  {
   //------------------ CLIENT REQUEST

  FileInputStream fileInputStream = new FileInputStream(new File(exsistingFileName) );

   // open a URL connection to the Servlet

   URL url = new URL(urlString);


   // Open a HTTP connection to the URL

   conn = (HttpURLConnection) url.openConnection();

   // Allow Inputs
   conn.setDoInput(true);

   // Allow Outputs
   conn.setDoOutput(true);

   // Don't use a cached copy.
   conn.setUseCaches(false);

   // Use a post method.
   conn.setRequestMethod("POST");

   conn.setRequestProperty("Connection", "Keep-Alive");

   conn.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

   dos = new DataOutputStream( conn.getOutputStream() );

   dos.writeBytes(twoHyphens + boundary + lineEnd);
   dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\";filename=\"" + exsistingFileName +"\"" + lineEnd);
   dos.writeBytes(lineEnd);

   System.out.println("Headers are written");

   // create a buffer of maximum size

   bytesAvailable = fileInputStream.available();
   bufferSize = Math.min(bytesAvailable, maxBufferSize);
   buffer = new byte[bufferSize];

   // read file and write it into form...

   bytesRead = fileInputStream.read(buffer, 0, bufferSize);

   while (bytesRead &gt; 0)
   {
    dos.write(buffer, 0, bufferSize);
    bytesAvailable = fileInputStream.available();
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
   }

   // send multipart form data necesssary after file data...

   dos.writeBytes(lineEnd);
   dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

   // close streams
   System.out.println("File is written");
   fileInputStream.close();
   dos.flush();
   dos.close();


  }
  catch (MalformedURLException ex)
  {
      System.out.println(ex.toString());
  }

  catch (IOException ioe)
  {
      System.out.println(ioe.toString());
  }


  //------------------ read the SERVER RESPONSE


  try {
        inStream = new DataInputStream ( conn.getInputStream() );
        String str;
      
        while (( str = inStream.readLine()) != null)
        {
            //the str contains the server response   
         System.out.println("Server Response"+str);
        }
        inStream.close();   
  }
  catch (IOException ioex){
       System.out.println(ioe.toString());
  }

}

If the file is sucessfully uploaded the response will be

The file test.mp3 has been uploaded.

otherwise the response will be

There was an error uploading the file, please try again!