This library is a toy for me. You can read NFC with libnfc written in PHP.
- PHP 7.4+
- PHP FFI
- libnfc 1.8.0 (if you use NFC reader for PaSoRi RC-S330)
- libusb 1.0.24 (if you use NFC reader for PaSoRi RC-S380)
- OS
- Mac Big Sur
- RaspberryPi (Raspbian)
- FeliCa
- PASMO
- Suica
- KONAMI e-AMUSEMENT pass
- Pixel5
- PaSoRi RC-S330
- You cannot touch Apple Wallet on iOS
- https://www.amazon.co.jp/dp/B001MVPD8U/
- PaSoRi RC-S380 (experimental)
- Supported only to a FeliCa
- You can touch Apple Wallet on iOS
- https://www.amazon.co.jp/dp/B00948CGAG/
- Install libnfc
$ brew install libnfc
- Install this library
$ composer require m3m0r7/nfc-for-php
- Connect NFC Device into your machine.
- Run example code
$ cd /path/to/nfc-for-php
$ php examples/nfc-poll-simple.php
- Put your NFC
- You can get output.
- Install libusb
$ brew install libusb
- Install this library
$ composer require m3m0r7/nfc-for-php
- Connect NFC Device into your machine.
- Run example code
$ cd /path/to/nfc-for-php
$ php examples/rcs380-nfc-poll-simple.php
- Put your NFC
- You can get output.
We're providing NFC binary in vendor/bin
.
And you can use 3 commands start
, ls
and version
Start to listen NFC reader.
./vendor/bin/nfc start
You can change the driver if you want to use other driver.
./vendor/bin/nfc start -D DriverName
You can specify hook events in CLI command.
./vendor/bin/nfc start -E /path/to/events.php
For example, you can use example file.
./vendor/bin/nfc start -E ./vendor/m3m0r7/nfc-for-php/examples/event-manager.php
And you want to more details, please run below command.
./vendor/bin/nfc start --help
Show available devices.
./vendor/bin/nfc ls
You can change the driver if you want to use other driver.
./vendor/bin/nfc ls -D DriverName
And you want to more details, please run below command.
./vendor/bin/nfc ls --help
Show PHP driver version.
./vendor/bin/nfc version
You can change the driver if you want to use other driver.
./vendor/bin/nfc version -D DriverName
And you want to more details, please run below command.
./vendor/bin/nfc version --help
- See examples
A. You must have granted permission to user.
I already test on RaspberryPI (Raspbian), it should grant to access permission to /dev/*
or using super user (e.g., the root user).
If you did not have permissions, cannot recognize a device on your environment and the libusb return an error LIBUSB_ERROR_ACCESS
.
A. You must reconnect the connected USB plug because libnfc/libusb return an invalid packet in the macOS when second time or later. I don't know how to fix it.
- MIT