Toller Vortrag zu reCAPTCHA vom CAPTCHA Erfinder Luis von Ahn
Samstag, 19. Dezember 2009
Spellchecker für Online Applications
Es gab einen coolen Service von Google um Formulareingaben zu überprüfen und aus Eingaben wie "Belrin" "Berlin" zu erkennen. Im Rahmen der Soap Search API gab es Vorschläge zu anderen Schreibweisen. Leider hat man den diesen Service aufgegeben, und seit Mitte 2009 funktioniert es nicht mehr. Der Nachfolger, die Ajax Search Api, hat dieses Feature leider nicht.
Auf der Suche habe ich diesen Blog-Artikel gefunden, in dem jemand die Google Toolbar Api verwendet um zum Ziel zu kommen. So ganz offiziell war das aber wohl nicht, eher ein "Hack", funktioniert aber gut!
Allerdings hab ich weitergesucht und was offizielles gesucht. Und bin dabei auf Bing gestossen. Der Microsoft-Service ging bisher ein bisschen an mir vorbei, obwohl die Karten bspw. gar nicht schlecht sind. Politically correct kann man heute aber wohl auch wieder zu MS stehen, Google hat ja so eine Marktmacht, da sollte man sich über jeden Konkurrenten freuen!
Und irgendwie gibt es ziemlich versteckt auch eine Bing Api. Superschlecht dokumentiert, verwirrend verlinkt und überhaupt, da gibt es noch so einiges von Google abzukucken!
Also, man muss sich auch hier einen Api Key generieren. IMO muss man sich vorher dafür registrieren.
So in etwa sieht meine funktion aus.
Auf der Suche habe ich diesen Blog-Artikel gefunden, in dem jemand die Google Toolbar Api verwendet um zum Ziel zu kommen. So ganz offiziell war das aber wohl nicht, eher ein "Hack", funktioniert aber gut!
Allerdings hab ich weitergesucht und was offizielles gesucht. Und bin dabei auf Bing gestossen. Der Microsoft-Service ging bisher ein bisschen an mir vorbei, obwohl die Karten bspw. gar nicht schlecht sind. Politically correct kann man heute aber wohl auch wieder zu MS stehen, Google hat ja so eine Marktmacht, da sollte man sich über jeden Konkurrenten freuen!
Und irgendwie gibt es ziemlich versteckt auch eine Bing Api. Superschlecht dokumentiert, verwirrend verlinkt und überhaupt, da gibt es noch so einiges von Google abzukucken!
Also, man muss sich auch hier einen Api Key generieren. IMO muss man sich vorher dafür registrieren.
So in etwa sieht meine funktion aus.
function DoSpellCheck ($suchbegriff)
{
$request = "http://api.bing.net/json.aspx?Appid=".BINGKEY."&sources=spell&query=" . urlencode($suchbegriff);
$jsonobj = json_decode(file_get_contents($request));
if ($jsonobj && $jsonobj->SearchResponse->Spell->Total)
{
if ($jsonobj->SearchResponse->Spell->Total>1)
return $jsonobj->SearchResponse->Spell->Results;
elseif ($jsonobj->SearchResponse->Spell->Total==1)
return ($jsonobj->SearchResponse->Spell->Results[0]->Value);
}
}
Dienstag, 12. Mai 2009
Node no longer exists Fehler in PHP
Node no longer exists Fehler in PHP
Perfekt um simple-XML Daten zu cachen...
Perfekt um simple-XML Daten zu cachen...
Samstag, 9. Mai 2009
Freitag, 24. April 2009
Pear XML_RSS
Pear XML_RSS ist zwar noch nicht so richtig alpha, aber was ist das bei Pear schon?
Sehr einfach, sehr effektiv. Installation
dann erscheint wahrscheinlich ein Hinweis, das das ganze noch nicht stable ist und man das alpha-Paket benutzen soll. Also einfach das angegebene Paket installieren.
Dann kanns losgehen.
Super. Angenommen man will nicht ständig den Feed aufrufen, weil der vielleicht langsam ist... kann man auch noch lustig mit PEAR::Cache_Lite arbeiten:
und dann kanns weitergehen wie oben:
Sehr einfach, sehr effektiv. Installation
pear install XML_RSS
dann erscheint wahrscheinlich ein Hinweis, das das ganze noch nicht stable ist und man das alpha-Paket benutzen soll. Also einfach das angegebene Paket installieren.
Dann kanns losgehen.
require_once "XML/RSS.php";
$rss =& new XML_RSS("http://www.auswaertiges-amt.de/diplo/de/Infoservice/RSS/Reisehinweise.xml");
$rss->parse();
$rssfeed = "<ul>";
foreach ($rss->getItems() as $lfd_nr => $rsseintrag)
$rssfeed .= "<li>". $rsseintrag["title"] ."</li>";
$rssfeed .= "</ul>";
echo $rssfeed;
Super. Angenommen man will nicht ständig den Feed aufrufen, weil der vielleicht langsam ist... kann man auch noch lustig mit PEAR::Cache_Lite arbeiten:
require_once 'Cache/Lite.php';
$cacheopt=array('cacheDir'=>'/tmp','lifeTime'=>(60*60),'pearErrorMode'=>CACHE_LITE_ERROR_DIE,'caching'=>true);
$cache=&new Cache_Lite($cacheopt);
if($rssobj = $cache->get('RSSAUSWAERTIGESAMT'))
$rss = unserialize($rssobj);
else
{
$rss =& new XML_RSS("http://www.auswaertiges-amt.de/diplo/de/Infoservice/RSS/Reisehinweise.xml");
$rss->parse();
$cache->save(serialize($rss),"RSSAUSWAERTIGESAMT");
}
und dann kanns weitergehen wie oben:
$rssfeed = "<ul>";
foreach ($rss->getItems() as $lfd_nr => $rsseintrag)
$rssfeed .= "<li>". $rsseintrag["title"] ."</li>";
$rssfeed .= "</ul>";
echo $rssfeed;
Dienstag, 24. Februar 2009
Donnerstag, 8. Januar 2009
PHP: Alter berechnen
Jede Menge Scripte berechnen das Alter. Na, eigentlich eines, das immer wieder zitiert wird, und falsch ist, es rechnet nämlich in Tagen und vergisst dabei die Schaltjahre. Naja, nicht so dramatisch wenn hier Kindergeburtstage ausgegeben werden, aber bei allen Älteren schon problematisch...
Es gibt auch welche (eines z.B. hier), wo es funktioniert, das finde ich aber recht kompliziert und vor allem lang.
$age = intval(($jetzt - $geburt) / (3600 * 24 * 365));
Es gibt auch welche (eines z.B. hier), wo es funktioniert, das finde ich aber recht kompliziert und vor allem lang.
function getAlter($geburtsdatum, $vondate=0)
{
if(empty($vondate))$vondate=time();
$geburt = strtotime($geburtsdatum);
$jahre = date("Y", $vondate)-date("Y", $geburt);
if (date("m", $vondate) < date("m", $geburt) ||
(date("m", $vondate) == date("m", $geburt) &&
date("d", $vondate) < date("d", $geburt)))
$jahre--;
return $jahre;
}
Abonnieren
Posts (Atom)