m3m0r7/nfc-for-php

NFC Reader written in PHP

0.2.3 2021-10-16 12:30 UTC

This package is auto-updated.

Last update: 2024-10-16 19:34:52 UTC


README

This library is a toy for me. You can read NFC with libnfc written in PHP.

Requirements

  • 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)

Tested

Quick start

Mac

RC-S330

  1. Install libnfc
$ brew install libnfc
  1. Install this library
$ composer require m3m0r7/nfc-for-php
  1. Connect NFC Device into your machine.
  2. Run example code
$ cd /path/to/nfc-for-php
$ php examples/nfc-poll-simple.php
  1. Put your NFC

  1. You can get output.

RC-S380

  1. Install libusb
$ brew install libusb
  1. Install this library
$ composer require m3m0r7/nfc-for-php
  1. Connect NFC Device into your machine.
  2. Run example code
$ cd /path/to/nfc-for-php
$ php examples/rcs380-nfc-poll-simple.php
  1. Put your NFC
  2. You can get output.

NFC binary

We're providing NFC binary in vendor/bin. And you can use 3 commands start, ls and version

start

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

ls

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

version

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

How to use

  • See examples

Troubleshooting

Q. How to recognize a device?

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.

Q. Cannot start second time or later on macOS

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.

License

  • MIT