A generic digital 24-port PCI GPIO card can be built out of an ordinary Brooktree bt848, bt849, bt878 or bt879 based analog TV tuner card. The Brooktree chip is used in old analog Hauppauge WinTV PCI cards. You can easily find them used for low prices on the net.
The bt8xx chip does have 24 digital GPIO ports. These ports are accessible via 24 pins on the SMD chip package.
There are several ways to access these pins. One might unsolder the whole chip and put it on a custom PCI board, or one might only unsolder each individual GPIO pin and solder that to some tiny wire. As the chip package really is tiny there are some advanced soldering skills needed in any case.
On this picture you can see the wires connected to the pins. The pins were unsoldered one after the other and bent away from the PCB. After that the wires were soldered to the pins. A really tiny soldering tip is needed for this.
A kernel driver is needed in order to access the GPIOs on the card. A simple driver was written to export the GPIO pins to the generic GPIO infrastructure of the Linux kernel. The "bt8xxgpio" driver is available in linux-2.6.27 or later.