- preg_replace_callback: documentation ( source)
- urlencode: documentation ( source)
- htmlentities: documentation ( source)
- html_entity_decode: documentation ( source)
<?php
class frengo_ad_common
{
public static function addClickTracking($ad)
{
$regexp = "<a(.+)href=[\"'](.*)[\"']";
$ad = preg_replace_callback("/$regexp/iU", "frengo_ad_common::formatClickURLMatch", $ad);
return $ad;
}
public static function formatClickURLMatch($matches)
{
$matchedURL = html_entity_decode($matches[2]);
$matchedURL = urlencode($matchedURL);
$matchedURL = htmlentities($matchedURL);
return '<a'.$matches[1].'href="{clickurl}'. "__maxdest=" . $matchedURL . '"';
}
}
$ad = <<<EOT
<a href='http://localhost:9003/openx/www/delivery/myck.php?p=__pid=03f3ec0d386cab28__sid=5874__bid=12691__cb=e3755e1c35__h=1378130258__channel_ids=%2C408%2C__uid=2A744361-BDDF-4266-B928-F6D3332CF10F__tp=fce9986117f37450268dc2b69a656030__os=iPhone+OS__ip=50.17.80.240__ua=Mozilla%2F5.0+%28iPad%3B+U%3B+CPU+OS+3_2+like+Mac+OS+X%3B+en-us%29+AppleWebKit%2F531.21.10+%28KHTML%2C+like+Gecko%29+Version%2F4.0.4+Mobile%2F7B367+Safari%2F531.21.10__ho=50.17.80.240__s=1a3d39ada87663adc053e469f9ee1951' target=''>test normal text link</a><img src="http://localhost:9003/openx/www/delivery/myview.php?p=__pid=03f3ec0d386cab28__sid=5874__bid=12691__cb=7da209cd79__h=1378130258__channel_ids=%2C408%2C__uid=2A744361-BDDF-4266-B928-F6D3332CF10F__tp=fce9986117f37450268dc2b69a656030__os=iPhone+OS__ip=50.17.80.240__ua=Mozilla%2F5.0+%28iPad%3B+U%3B+CPU+OS+3_2+like+Mac+OS+X%3B+en-us%29+AppleWebKit%2F531.21.10+%28KHTML%2C+like+Gecko%29+Version%2F4.0.4+Mobile%2F7B367+Safari%2F531.21.10__ho=50.17.80.240__s=989edb9bf0058afaf9b0e02f3bc546af" alt="" width="1" height="1" />
EOT;
$ad = frengo_ad_common::addClickTracking($ad);
echo $ad;
?>