PHP Extension
PHP Extension
PC/SC Get Card UID
See more SCard Examples
Sends the APDU command to get a card's UID.Chilkat PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$scard = new CkSCard();
// First establish a context to the PC/SC Resource Manager
$success = $scard->EstablishContext('user');
if ($success == false) {
print $scard->lastErrorText() . "\n";
exit;
}
// Use your own smart card reader name here.
$success = $scard->Connect('ACS ACR122 0','shared','no_preference');
if ($success == false) {
print $scard->lastErrorText() . "\n";
exit;
}
print 'Connected reader: ' . $scard->connectedReader() . "\n";
print 'Active protocol: ' . $scard->activeProtocol() . "\n";
print 'ATR: ' . $scard->cardAtr() . "\n";
print 'Reader Status: ' . $scard->readerStatus() . "\n";
// Send the APDU command 0xFF, 0xCA, 0x00, 0x00, 0x00
$bdRecv = new CkBinData();
$success = $scard->TransmitHex($scard->activeProtocol(),'FFCA000000',$bdRecv,32);
if ($success == true) {
print 'Received: ' . $bdRecv->getEncoded('hex') . "\n";
// The UID is the returned data without the final 2 bytes.
$numBytes = $bdRecv->get_NumBytes();
if ($numBytes > 2) {
print 'UID: ' . $bdRecv->getEncodedChunk(0,$numBytes - 2,'hex') . "\n";
}
}
else {
print $scard->lastErrorText() . "\n";
}
// Disconnect from this reader.
$success = $scard->Disconnect('leave');
if ($success == false) {
print $scard->lastErrorText() . "\n";
}
// Applications should always release the context when finished.
$success = $scard->ReleaseContext();
if ($success == false) {
print $scard->lastErrorText() . "\n";
}
?>