Pages

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.

Friday, July 9, 2010

MYSQL Statements and clauses and PHP and Perl API Function

MYSQL Statements and clauses
ALTER DATABASE

ALTER TABLE

ALTER VIEW

ANALYZE TABLE

BACKUP TABLE

CACHE INDEX

CHANGE MASTER TO

CHECK TABLE

CHECKSUM TABLE

COMMIT

CREATE DATABASE

CREATE INDEX

CREATE TABLE

CREATE VIEW

DELETE

DESCRIBE

DO

DROP DATABASE

DROP INDEX

DROP TABLE

DROP USER

DROP VIEW

EXPLAIN

FLUSH

GRANT

HANDLER

INSERT

JOIN

KILL

LOAD DATA FROM MASTER

LOAD DATA INFILE

LOAD INDEX INTO CACHE

LOAD TABLE...FROM MASTER

LOCK TABLES

OPTIMIZE TABLE

PURGE MASTER LOGS

RENAME TABLE

REPAIR TABLE

REPLACE

RESET

RESET MASTER

RESET SLAVE

RESTORE TABLE

REVOKE

ROLLBACK

ROLLBACK TO SAVEPOINT

SAVEPOINT

SELECT

SET

SET PASSWORD

SET SQL_LOG_BIN

SET TRANSACTION

SHOW BINLOG EVENTS

SHOW CHARACTER SET

SHOW COLLATION

SHOW COLUMNS

SHOW CREATE DATABASE

SHOW CREATE TABLE

SHOW CREATE VIEW

SHOW DATABASES

SHOW ENGINES

SHOW ERRORS

SHOW GRANTS

SHOW INDEX

SHOW INNODB STATUS

SHOW LOGS

SHOW MASTER LOGS

SHOW MASTER STATUS

SHOW PRIVILEGES

SHOW PROCESSLIST

SHOW SLAVE HOSTS

SHOW SLAVE STATUS

SHOW STATUS

SHOW TABLE STATUS

SHOW TABLES

SHOW VARIABLES

SHOW WARNINGS

START SLAVE

START TRANSACTION

STOP SLAVE

TRUNCATE TABLE

UNION

UNLOCK TABLES

USE

String Functions
AES_DECRYPT

AES_ENCRYPT

ASCII

BIN

BINARY

BIT_LENGTH

CHAR

CHAR_LENGTH

CHARACTER_LENGTH

COMPRESS

CONCAT

CONCAT_WS

CONV

DECODE

DES_DECRYPT

DES_ENCRYPT

ELT

ENCODE

ENCRYPT

EXPORT_SET

FIELD

FIND_IN_SET

HEX

INET_ATON

INET_NTOA

INSERT

INSTR

LCASE

LEFT

LENGTH

LOAD_FILE

LOCATE

LOWER

LPAD

LTRIM

MAKE_SET

MATCH AGAINST

MD5

MID

OCT

OCTET_LENGTH

OLD_PASSWORD

ORD

PASSWORD

POSITION

QUOTE

REPEAT

REPLACE

REVERSE

RIGHT

RPAD

RTRIM

SHA

SHA1

SOUNDEX

SPACE

STRCMP

SUBSTRING

SUBSTRING_INDEX

TRIM

UCASE

UNCOMPRESS

UNCOMPRESSED_LENGTH

UNHEX

UPPER

Date and Time Functions
ADDDATE

ADDTIME

CONVERT_TZ

CURDATE

CURRENT_DATE

CURRENT_TIME

CURRENT_TIMESTAMP

CURTIME

DATE

DATE_ADD

DATE_FORMAT

DATE_SUB

DATEDIFF

DAY

DAYNAME

DAYOFMONTH

DAYOFWEEK

DAYOFYEAR

EXTRACT

FROM_DAYS

FROM_UNIXTIME

GET_FORMAT

HOUR

LAST_DAY

LOCALTIME

LOCALTIMESTAMP

MAKEDATE

MAKETIME

MICROSECOND

MINUTE

MONTH

MONTHNAME

NOW

PERIOD_ADD

PERIOD_DIFF

QUARTER

SEC_TO_TIME

SECOND

STR_TO_DATE

SUBDATE

SUBTIME

SYSDATE

TIME

TIMEDIFF

TIMESTAMP

TIMESTAMPDIFF

TIMESTAMPADD

TIME_FORMAT

TIME_TO_SEC

TO_DAYS

UNIX_TIMESTAMP

UTC_DATE

UTC_TIME

UTC_TIMESTAMP

WEEK

WEEKDAY

WEEKOFYEAR

YEAR

YEARWEEK

Mathematical and Aggregate Functions
ABS

ACOS

ASIN

ATAN

ATAN2

AVG

BIT_AND

BIT_OR

BIT_XOR

CEIL

CEILING

COS

COT

COUNT

CRC32

DEGREES

EXP

FLOOR

FORMAT

GREATEST

GROUP_CONCAT

LEAST

LN

LOG

LOG2

LOG10

MAX

MIN

MOD

PI

POW

POWER

RADIANS

RAND

ROUND

SIGN

SIN

SQRT

STD

STDDEV

SUM

TAN

TRUNCATE

VARIANCE

Flow Control Functions
CASE

IF

IFNULL

NULLIF

Command-Line Utilities
comp_err

isamchk

make_binary_distribution

msql2mysql

my_print_defaults

myisamchk

myisamlog

myisampack

mysqlaccess

mysqladmin

mysqlbinlog

mysqlbug

mysqlcheck

mysqldump

mysqldumpslow

mysqlhotcopy

mysqlimport

mysqlshow

perror

Perl API - using functions and methods built into the Perl DBI with MySQL
available_drivers

begin_work

bind_col

bind_columns

bind_param

bind_param_array

bind_param_inout

can

clone

column_info

commit

connect

connect_cached

data_sources

disconnect

do

dump_results

err

errstr

execute

execute_array

execute_for_fetch

fetch

fetchall_arrayref

fetchall_hashref

fetchrow_array

fetchrow_arrayref

fetchrow_hashref

finish

foreign_key_info

func

get_info

installed_versions


last_insert_id

looks_like_number

neat

neat_list

parse_dsn

parse_trace_flag

parse_trace_flags

ping

prepare

prepare_cached

primary_key

primary_key_info

quote

quote_identifier

rollback

rows

selectall_arrayref

selectall_hashref

selectcol_arrayref

selectrow_array

selectrow_arrayref

selectrow_hashref

set_err

state

table_info

table_info_all

tables

trace

trace_msg

type_info

type_info_all

Attributes for Handles

PHP API - using functions built into PHP with MySQL
mysql_affected_rows

mysql_change_user

mysql_client_encoding

mysql_close

mysql_connect

mysql_create_db

mysql_data_seek

mysql_db_name

mysql_db_query

mysql_drop_db

mysql_errno

mysql_error

mysql_escape_string

mysql_fetch_array

mysql_fetch_assoc

mysql_fetch_field

mysql_fetch_lengths

mysql_fetch_object

mysql_fetch_row

mysql_field_flags

mysql_field_len

mysql_field_name

mysql_field_seek

mysql_field_table

mysql_field_type

mysql_free_result

mysql_get_client_info

mysql_get_host_info

mysql_get_proto_info

mysql_get_server_info

mysql_info

mysql_insert_id

mysql_list_dbs

mysql_list_fields

mysql_list_processes

mysql_list_tables

mysql_num_fields

mysql_num_rows

mysql_pconnect

mysql_ping

mysql_query

mysql_real_escape_string

mysql_result

mysql_select_db

mysql_stat

mysql_tablename

mysql_thread_id

mysql_unbuffered_query