finding php, html, htm files

how can i limit the output to only php, html, htm files?

i found this as one way

find . -regex ".*\(php\|html\|htm\)$" -type f -print0 | xargs -0 grep 'keyword'

and it works but is a bit slow
is there any faster way?

i tried something like this but it doesnt work:

find ./ -iname "*.php" -or -iname "*.html"

how can i do an "or" for -name *.php
or -name *.htm
or -name *.html?

crude attempt.. patterns not bounded by end of line.. but may work for you.

find /some/path  \( -name "*.php" -o -name "*.html" -o -name "*.htm" \)

Yeaboem's solution is correct and efficient. I might add "-type f" if you are not interested in directory names.

find /some/path -type f \( -name "*.php" -o -name "*.html" -o -name "*.htm" \)