My hunch is that this isn’t on Airtable’s side and is somewhere else in your pipeline. I just experimented with a rich-text-enabled Long Text field, and this is what I’m seeing coming back straight from the API:
This is a test hyperlink that just displays the full value in text:\n\n<https://www.chr.org/>\n\nAnd this is one that [links it in-line](https://www.chr.org/).\n
Looks good to me.
One thing that may help is to simplify your pipeline from Airtable → your PHP app. Your developer mentions that you’re using a “read” data file as a cache. I’d be remiss not to mention I recently happened to launch a service that helps with this exact problem - Sync Inc (https://syncinc.so/). We setup a follower Postgres database that tracks your Airtable data in real-time. (No need to fiddle around with syncing to/reading from a file anymore.) Maybe the simplicity we offer will help with this and other issues? Pass it along, and let him or her know that I’m available to answer any and all questions!