You are here

function salesforce_api_id_convert in Salesforce Suite 7.2

Same name and namespace in other branches
  1. 6.2 salesforce_api/salesforce_api.module \salesforce_api_id_convert()

Converts a 15-character Salesforce ID to 18-character ID.

Parameters

string $sfid15:

Return value

case-insensitive 18-character Salesforce ID

1 call to salesforce_api_id_convert()
salesforce_api_id_compare in salesforce_api/salesforce_api.module
Compares mixed 15- and 18-character Salesforce IDs. Up-converts 15-character strings for comparison when applicable. Based on Christian G. Warden's code at…

File

salesforce_api/salesforce_api.module, line 2046
Defines an API that enables modules to interact with the Salesforce server.

Code

function salesforce_api_id_convert($sfid15) {
  if (strlen($sfid15) != 15) {
    return $sfid15;
  }
  $chunks = str_split($sfid15, 5);
  $extra = '';
  foreach ($chunks as $chunk) {
    $chars = str_split($chunk, 1);
    $bits = '';
    foreach ($chars as $char) {
      $bits .= !is_numeric($char) && $char == strtoupper($char) ? '1' : '0';
    }
    $map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345';
    $extra .= substr($map, base_convert(strrev($bits), 2, 10), 1);
  }
  return $sfid15 . $extra;
}