Pages

Wednesday, August 14, 2013

Oracle - PHP - command line

Connecting Oracle in PHP using command line, will need to set some environment variable as below.

Below is the code snippet for Shell script, all export variable are necessary in  term of command line execution.

------------------------------------------------------
### Cron for Purpose

#export ORACLE_SID=ONLDB
export ORACLE_BASE=/usr/local/oracle92/
export ORACLE_HOME=$ORACLE_BASE
#export ORACLE_TERM=vt100
#export NLS_LANG=american
#export ORA_NLS33=$ORACLE_BASE/ocommon/nls/admin/data
#export LD_LIBRARY_PATH=$ORACLE_BASE/lib:/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_BASE/bin
#export ORACLE_BIN=$ORACLE_BASE/bin

### Unpublished Product Job since last 3 days
php /path/to/cron/file.php
--------------------------------------------------------------------

Friday, March 8, 2013

Simple Encoding and Decoding for Alpha Numeric String

Below is the code in java for alpha numeric string encoding and  decoding.


public class EncodeDecode {

private String getString() {
StringBuffer chrStr = new StringBuffer();

for (int x = 0; x <= 25; x++) {
int ch = 65 + x;
chrStr.append((char) ch);
}
for (int x = 0; x <= 9; x++) {
int ch = x;
chrStr.append(ch);
}
for (int x = 0; x <= 25; x++) {
int ch = 97 + x;
chrStr.append((char) ch);
}
return chrStr.toString();
}

private String encodedString(){
String chrStr = getString();
int from = 13;
int to = (chrStr.toString().length());
return chrStr.substring(from, to) + chrStr.substring(0, from);
}

public String decode(String input) {
String strDecode = "";

String chrStr = getString();

String abTo = encodedString();

for (int i = 0; i < input.length(); i++) {
int y = abTo.indexOf(input.charAt(i));

if (y == 0) {
strDecode = strDecode + input.charAt(i);
} else {
strDecode = strDecode + chrStr.charAt(y);
}
}
return strDecode;
}

public String encode(String input) {
String strEncode = "";
String chrStr = getString();

String abTo = encodedString();

for (int i = 0; i < input.length(); i++) {
int y = chrStr.indexOf(input.charAt(i));

if (y == 0) {
strEncode = strEncode + input.charAt(i);
} else {
strEncode = strEncode + abTo.charAt(y);
}
}

return strEncode;
}

Friday, March 1, 2013

Difference between API Vs. Web Services.




API (Application Programming Interface) is nothing but the protocol intended to be used as an interface by software components to communicate with each other. An API acts as an interface between two different applications so that they can communicate with each other.

Web Service is an API used in the context of
 web development. A Web service is a method of communication between two electronic devices over the World Wide Web.

API use any means of communication to initiate interaction between applications. API has a complete set of rules and specifications for a software program to interaction with each other.

A Web service may not have a complete set of specifications and sometimes might not be able to perform all the tasks.

API can be stripped in a various ways: COM Object, DLL files, Header files with .h extension, RMI in java etc, linux kernel API.

Web Services must be exposed the API is strictly through a network. Web Service API almost always uses HTTP or SMTP. Web Services can be SOAP, XML-RPC, REST, etc. 

Web API i.e. Web Service is typically defined as a set of Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, which is usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format.

All Web services are APIs but all APIs are not Web services.



Friday, December 7, 2012

Validate XML in Java Script

Below is the function to validate the XML's. This function will return 'true' if it is a valid XML, else will return 'false'.

----------------------------------------------------------------
var msgError = "", isValidNode = 1;
function checkErrorXML(xml) {
 msgError = "";
 isValidNode = 1;
 checkXML(xml);
}

function checkXML(node) {
 var l, i, nam;
 nam = node.nodeName;
 if (nam == "h3") {
  if (isValidNode == 0) {
   return;
  }
  isValidNode = 0;
 }
 if (nam == "#text") {
  msgError = msgError + node.nodeValue + "\n";
 }
 l = node.childNodes.length;
 for (i = 0; i < l; i++) {
  checkXML(node.childNodes[i]);
 }
}

function validateXML(inputXml) {
 
 var returnFlag = true;
 
 // Validate in IE
 if (window.ActiveXObject) {
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(document.all(inputXml).value);

  if (xmlDoc.parseError.errorCode != 0) {
   returnFlag = false;
  } else {
   returnFlag = true;
  }
 }

 // Validate in Mozilla, Firefox, Opera, etc.
 else if (document.implementation.createDocument) {
  var parser = new DOMParser();
  var text = document.getElementById(inputXml).value;
  var xmlDoc = parser.parseFromString(text, "text/xml");

  if (xmlDoc.getElementsByTagName("parsererror").length > 0) {
   checkErrorXML(xmlDoc.getElementsByTagName("parsererror")[0]);

   returnFlag = false;
  } else {
   returnFlag = true;
  }
 } else {
  //No Browser Support
  returnFlag = false;
 }
 
 return returnFlag;
}

 
 

Thursday, August 26, 2010

Spell checker API

Function below uses Yahoo API.

function yahoo_spell_check ($query)
{
// Substitute this application ID with your own application ID provided by Yahoo!.
$appID = "APP_ID";

// URI used for making REST call. Each Web Service uses a unique URL.
$request = "http://search.yahooapis.com/WebSearchService/V1/spellingSuggestion? appid=$appID&query=".urlencode($query);

// Initialize the session by passing the request as a parameter
$session = curl_init($request);

// Set curl options by passing session and flags
// CURLOPT_HEADER allows us to receive the HTTP header
curl_setopt($session, CURLOPT_HEADER, true);

// CURLOPT_RETURNTRANSFER will return the response
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);

// Make the request
$response = curl_exec($session);

// Close the curl session
curl_close($session);

// Get the XML from the response, bypassing the header
if (!($xml = strstr($response, 'Result;

if($data[0] == '')
{
return $query;
}

return $data[0];
}






Function below uses Google's API.

function google_spell_check($query)
{
$url="https://www.google.com/tbproxy/spell?lang=en";// . $_GET['lang'];
$ignoredigits = 1;
$ignorecaps = 1;

$text = urldecode($query);

$body = '';
$body .= '';
$body .= '' . $text . '';
$body .= '
';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);

/* $ttt = XML2Array($contents);
//print_r($ttt);
//foreach($ttt as $key=>$val)
//echo "$key => $val\n";
extract($ttt);
$cc = explode(" ", trim($c));
return $cc[0];
*/


$xml = simplexml_load_string($contents);
$return_str = "";

foreach($xml->children() as $child)
{
$child_arr = preg_split("/[\s]+/", $child);
$return_str .= $child_arr[0] . " ";
}

if($return_str == '')
{
return strtolower($query);
}

return strtolower(trim($return_str));
}

Utility Functions

Here is the list of some of the important Utility functions.

I have this function as a member function in my Utility Class.


function mb_unserialize($serial_str) {
$out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
return unserialize($out);
}


function getValidFileName($str)
{
return preg_replace('/[^0-9a-z?-????\`\~\!\@\#\$\%\^\*\(\)\; \,\.\'\/\_\-]/i', ' ',$str);
}


function XML2Array ( $xml , $recursive = false )
{
if ( ! $recursive )
{
$array = simplexml_load_string ( $xml ) ;
}
else
{
$array = $xml ;
}

$newArray = array () ;
$array = ( array ) $array ;
foreach ( $array as $key => $value )
{
$value = ( array ) $value ;
if ( isset ( $value [ 0 ] ) )
{
$newArray [ $key ] = trim ( $value [ 0 ] ) ;
}
else
{
$newArray [ $key ] = XML2Array ( $value , true ) ;
}
}
return $newArray ;
}


function set_flash($text,$type) {
$flash['type'] = $type;
$flash['text'] = $text;
$_SESSION['flash'] = serialize($flash);
}

function get_flash() {
if ($flash = $_SESSION['flash']) {
$_SESSION['flash'] = array();
return unserialize($flash);
} else {
return "";
}
}


function smartslashes($text) {
$magic_quotes_gpc = (bool) ini_get('magic_quotes_gpc');
if (!$magic_quotes_gpc) {
return addslashes($text);
} else {
return $text;
}
}

function check_email_address($email_address)
{
//returns 1 if valid email address (only numeric string), 0 if not
if (eregi("^[\+_a-z0-9-]+(\.[\+_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email_address))
return 1;
else
return 0;
}

Friday, July 30, 2010

PHP Allowed Memory Size Exchausted Fatal Error

A functional PHP script returns the following error either on the web page
or in Apache error log file when it exchausted and used up the default memory requirement of 8 MB memory allocation:

PHP Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate … bytes) in …

The error normally occurs when PHP tries to process a big database records or when importing or exporting. To solve the error, there are two resolutions. One is to change and increase the memory limit of the particular PHP script by adding or including an additional line at the top of the script:

ini_set(“memory_limit”,”16M”);

You can assign the memory limit to any amount you like by changing the 16M to other number, such as 12M or 24M. 16M will set the memory limit to 16 megabytes. If this doesn’t work and the PHP error still appearing, increase the memory limit until the PHP scripts running perfectly or the limit of your system
hardware.

To change the memory allocation limit permanently for all PHP scripts running on the server
, modify the PHP.INI configuration file of the server (location depending on your OS and installation method). Search for memory_limit after opening the file in an editor. If the memory_limit doesn’t exist, add the following line. If it’s there, modify the value of the memory_limit:

memory_limit = 12M

The 12M sets the limit to 12 megabytes (12582912 bytes). Change to the value you desirable.

An alternative way is to modify your PHP scripts that generate the error for more efficiency and better data handling.