I just recently discovered Surfraw and so far I love it. I wanted to try
my hand at writing an elvis and since I am currently doing a lot of
programming in PHP I decided to create one for <a href="http://php.net/">php.net</a>.
From the site you can search various things including the functions,
bugs, mailing lists, etc... so I included a flag for each one. Anyway,
just thought I would share.<br><br><pre class="vscroll"><code>#!/bin/sh
# elvis: php -- Search PHP.net
# Author: <a href="http://jonyamo.net">http://jonyamo.net</a>
. surfraw || exit 1
w3_config_hook () {
def SURFRAW_php_language "$SURFRAW_lang"
def SURFRAW_php_search "functions"
}
w3_usage_hook () {
cat <<EOF
Usage: $w3_argv0 [options] [search-string]
Description:
Search PHP.net
Local options:
-l, -language= Two letter language code (resembles ISO country codes)
en | English (default)
pt | Brazilian Portuguese
zh | Chinese (Simplified)
fr | French
de | German
ja | Japanese
pl | Polish
ro | Romanian
fa | Persian
es | Spanish
tr | Turkish
Environment: SURFRAW_php_language, SURFRAW_lang
Default: en
-s, -search= Specialized search on topic
all | All <a href="http://php.net">php.net</a> sites
functions | Function search
manual | Online documentation
bugs | Bug database
news | News archive
changelogs | Changelogs
pear | Just <a href="http://pear.php.net">pear.php.net</a>
pecl | Just <a href="http://pecl.php.net">pecl.php.net</a>
talks | Just <a href="http://talks.php.net">talks.php.net</a>
maillist | General mailing list
devlist | Developer mailing list
phpdoc | Documentation mailing list
Environment: SURFRAW_php_search
Default: functions
-a, -all alias of -search=all
-f, -functions alias of -search=functions
-m, -manual alias of -search=manual
-b, -bugs alias of -search=bugs
-n, -news alias of -search=news
-c, -changelogs alias of -search=changelogs
-t, -talks alias of -search=talks
-maillist alias of -search=maillist
-devlist alias of -search=devlist
-phpdoc alias of -search=phpdoc
EOF
w3_global_usage
}
w3_parse_option_hook () {
opt="$1"
optarg="$2"
case "$opt" in
-language=*) setopt SURFRAW_php_language "$optarg" ;;
-l=*) setopt SURFRAW_php_language "$optarg" ;;
-search=*) setopt SURFRAW_php_search "$optarg" ;;
-s=*) setopt SURFRAW_php_search "$optarg" ;;
-a|-all) setopt SURFRAW_php_search "all" ;;
-f|-functions) setopt SURFRAW_php_search "functions" ;;
-m|-manual) setopt SURFRAW_php_search "manual" ;;
-b|-bugs) setopt SURFRAW_php_search "bugs" ;;
-n|-news) setopt SURFRAW_php_search "news" ;;
-c|-changelogs) setopt SURFRAW_php_search "changelogs" ;;
-t|-talks) setopt SURFRAW_php_search "talks" ;;
-maillist) setopt SURFRAW_php_search "maillist" ;;
-devlist) setopt SURFRAW_php_search "devlist" ;;
-phpdoc) setopt SURFRAW_php_search "phpdoc" ;;
*) return 1 ;;
esac
return 0
}
w3_config
w3_parse_args "$@"
# w3_args now contains a list of arguments
url="<a href="http://php.net/">http://php.net/</a>"
case "$SURFRAW_php_language" in
en) lang="en" ;;
pt) lang="pt_BR" ;;
zh) lang="zh" ;;
fr) lang="fr" ;;
de) lang="de" ;;
ja) lang="ja" ;;
pl) lang="pl" ;;
ro) lang="ro" ;;
fa) lang="fa" ;;
es) lang="es" ;;
tr) lang="tr" ;;
*) lang="en" ;;
esac
case "$SURFRAW_php_search" in
all) search="all" ;;
functions) search="quickref" ;;
manual) search="manual" ;;
bugs) search="bugdb" ;;
news) search="news_archive" ;;
changelogs) search="changelogs" ;;
pear) search="pear" ;;
pecl) search="pecl" ;;
talks) search="talks" ;;
maillist) search="maillist" ;;
devlist) search="devlist" ;;
phpdoc) search="phpdoc" ;;
*) search="functions" ;;
esac
if [ -n "$w3_args" ]; then
escaped_args=$(w3_url_of_arg $w3_args)
url="${url}search.php?lang=${lang}&show=${search}&pattern=${escaped_args}"
fi
w3_browse_url "$url"</code></pre><br>