Microsoft Azure has a very cool API called Computer Vision , which you can use for free (either through the user interface or programmatically) and has tons of documentation , including for PHP .
It has some surprisingly accurate (and sometimes humorous) results.
With the exception of the discovery of adult and "racist" material, he will read the text, guess his age, determine the primary colors, etc. etc.
You can try: azure.microsoft.com .
Sample output from a "bright" image:
FEATURE NAME: VALUE: Description { "tags": [ "person", "man", "young", "woman", "holding", "surfing", "board", "hair", "laying", "boy", "standing", "water", "cutting", "white", "beach", "people", "bed" ], "captions": [ { "text": "a man and a woman taking a selfie", "confidence": 0.133149087 } ] } Tags [ { "name": "person", "confidence": 0.9997446 }, { "name": "man", "confidence": 0.9587285 }, { "name": "wall", "confidence": 0.9546831 }, { "name": "swimsuit", "confidence": 0.499717563 } ] Image format "Jpeg" Image dimensions 1328 x 2000 Clip art type 0 Line drawing type 0 Black and white false Adult content true Adult score 0.9845981 Racy true Racy score 0.964191854 Categories [ { "name": "people_baby", "score": 0.4921875 } ] Faces [ { "age": 37, "gender": "Female", "faceRectangle": { "top": 317, "left": 1554, "width": 232, "height": 232 } } ] Dominant color background "Brown" Dominant color foreground "Black" Accent Color