<?php
/** text coming from call had been coverted to octal and shifted 1 bit to left (multiplied by 2)
 *  revert back to original string by dividing by 2 (shift 1 bit right), then find ascii equiv
 *
 */
function revertOct($oct) {
   $r='';
   for ($i=0; $i<strlen($oct); $i=$i+3) {
      $dec = intval(substr($oct,$i,3),8)/2;
      $r = $r . chr($dec);
   }
   return $r;
}

function string_to_octal($str)
{
    $chars = str_split($str);
    $rtn = "";

    foreach ($chars as $c) { $rtn .= str_pad(decoct(ord($c)*2), 3, 0, STR_PAD_LEFT); }	//multiply by 2 to shift 1 bit left

    return $rtn;
}


function str2hx($s) {
	$chars = str_split($s);
	$r = "";
	foreach ($chars as $c) {
		$r .= str_pad(dechex(ord($c)),2,0,STR_PAD_LEFT);	
	}
	return $r;
}

function x2str2hx($s) {
	$chars = str_split($s);
	$rx2 = "";
	foreach ($chars as $c) {
		$rx2 .= str_pad(dechex(ord($c)*2),2,0,STR_PAD_LEFT);	
	}
	return $rx2;
}

function hx2str($hx) {
	$r = "";
	for ($i=0; $i<strlen($hx); $i=$i+2) {
		$dec = intval(substr($hx,$i,2),16);
		$r .= chr($dec);
	}
	return $r;
}

function x2hx2str($hx) {
	$r = "";
	for ($i=0; $i<strlen($hx); $i=$i+2) {
		$dec = intval(substr($hx,$i,2),16)/2;
		$r .= chr($dec);
	}
	return $r;
}



?>