This is the only extension for using PC/SC based smart cards with PHP. It is a wrapper to the wonderful and free project by Ludovic Rousseau, PCSC-Lite, which is the middleware to access a smart card using SCard API (PC/SC). Since PCSC-Lite is compatible to the winscard API it should be possible to compile this extension using a Windows or macOS operating system.
Thanks are going to Johann Dantant! He provides a PC/SC extension for PHP since 2005 and I reused some of his code. He allowed me to relicense these parts under the terms of the PHP license so I could integrate PCSC-Lite natively into PHP.
I recommend to install the PECL extension the "PHP" way:
pecl install pcsc-beta
You can install the latest code by downloading the sources and compile yourself too.
git clone https://github.com/pcsc-for-php/pcsc.git cd pcsc phpize ./configure make make install
After that you have all needed files in ./modules/
The extension currently provides the following API:
Returns the application $context to the PC/SC resource manager.
Returns TRUE if $context is valid or FALSE if $context is not valid.
Releases the application $context.
Returns an array of available readers or FALSE.
array(3) {
[0]=>
string(26) "OMNIKEY CardMan 5x21 00 00"
[1]=>
string(26) "OMNIKEY CardMan 5x21 00 01"
[2]=>
string(76) "SCL01x Contactless Reader [SCL01x Contactless Reader] (21161009200722) 00 00"
}
Connects to a card. Returns the $connection to a reader or FALSE.
Returns the $connection to a reader or FALSE.
Disconnects the $connection to a card. Returns the TRUE if disconnecting was succesful or FALSE.
Returns the response $apdu as string or FALSE.
Returns the status or FALSE.
This code is licensed under the terms of the PHP License version 3.01. PCSC-Lite is licensed in a way where it is possible to integrate it native in the PHP environment.