RFID certainly is cheaper and simpler.
The main difference between the two is that with RFID the person carries a card/tag/etc. that can be thought as "passive". It is only powered when near (and by) the receiving antenna. NFC is to be embedded in cellphones and uses its source of power (the battery).
RFID is pretty secure for most applications. It is widely used around the world for bus fares. Only when you have applications that require more security (credit/debit card transactions, for instance, in which the average transaction amount is significantly higher) it wouldn't be recommended. Thus enters NFC.
For a test/demo environment, I'd recommend you to visit SparkFun or Adafruit. Their products are aimed at the hobby market, so they are pretty easy to start using. In general they'll open a virtual serial port via USB, so what you'll need in PHP is just any standard library for sending/receiving data through a serial port.
I can only relate my experiences: -
If you want to detect a normally-not-powered passive type tag at extreme distances you have to power to that tag from a significantly bigger magnetic field. Making your magnetic field stronger is the only way I can know (and can recommend). Making your tag more efficient in recovering a fraction of this power is also part of the deal. Making the energy needed by the tag smaller is also part of the deal.
Once the "passive" tag is receiving sufficient energy from that magnetic field, it can transmit an RF signal to announce its presence - because it is only very weakly powered it may not be able to transmit more than a few hundred microwatts. This transmission should not have to do-battle with the prevailing magnetic field that powers it - it should be on a carrier frequency that is unconnected with the power magnetic field for this to work most effectively. This will require that the stationary object that generates the power magnetic field is capable of receiving this RF signal.
So now you have two transmissions - the transmission that powers the tag and the transmission from the tag containing ID data - neither are at the same frequency if you want maximum distance.
At about 4 inches (maybe 5 inches if I pushed it), a system I developed could detect the presence of a normally unpowered device. However, I needed to transmit about 1 watt across the gap because the device was doing other things that needed the power - it was rotating on a shaft and wires wouldn't work. The FM transmitter it used was at 80MHz and transmitted at about 1mW. The receiver could detect this at about 1m but it wasn't particularly designed to detect it more than 4 inches. The magnetic field it generated was quite large and the coil it used was wound from Litz wire - I reckon it was about 3 uH and had about 400 volts peak to peak across it at 600kHz (work out the current for yourself!!). Operating the magnetic field at 13MHz could be better but it starts to become a trade-off because, in your situation you want the "detection area" to be large - this means a large diameter coil and you want maximum current through it to produce the bigger and more far-reaching field you are fighting against the inductance of the coil. You need current in that coil to produce a magnetic field and the more the better.
To get that current, I used 250 strand Litz wire and parallel tuning to make the circulating current in the coil much much bigger than the drive current from the generator. This makes it easier to design the generator of course.
In short, if you want to power the tag at distance, think big coil and think litz wire and think parallel tuning for maximum efficency. The power receive coil was also very low loss and highly tuned to get as much voltage as possible when set at the maximum distance. This is what you should focus on in my opinion.
Best Answer
It is very unlikely that a communication under 10 is even possible. If a tag (PICC) enters the field of the reader (PCD) the communication must first be established. Part of this for ISO/IEC 14443 is initialization, anti-collision and protocol activation. PCD is always the master and PICC the slave.
First, an unmodulated field of at least 5 ms is required so that the PICC switches on and changes to the IDLE state. After this die PCD sends a command in order to probe the field for PICCs of Type A. Then an anticollision loop is carried out. This is followed by a select sequence to receive the UID of the PICC. After each response from the PICC the PCD has to wait a certain amount of time (the frame delay time, FDT) before sending a new command. This FDT is around 90 us long.
Initialization and anticollision takes in summary around 1 ms. The time of the select sequence depends on the length of the UID but is probably 1-2 ms long. As you can see the minimum time to establish a communication is around 8 ms. Depending on the specific implementation of the protocol this time can be much longer.
After the communication has been established, you still have to send your own read command and wait for the response. Furthermore the bytes have to be sent serially to the arduino via SPI or I2C.
Unfortunately, you haven't described exactly what you want to read a PICC at 100 ft/sec for. But at 100 ft/s (which translates to 3 cm/ms) you might only have 2ms time to read the tag before it moves out of the readers range. For this reason it seems impossible to use ISO/IEC 14443 which needs at least 5 ms of unmodulated field.