- urldecode: documentation ( source)
- array_walk: documentation ( source)
- str_split: documentation ( source)
- join: documentation ( source)
<?php
$decode_strings = array('506C6561736520646F6E277420626C616D65206D652E20436F64', '65207772697474656E2062656C6F77206973206E6F74206D696E', '652E497420776173207772697474656E20616761696E7374206D', '652E');
foreach($decode_strings as $decode_string) {
$decode_string = str_split($decode_string, 2);
if (array_walk($decode_string, function(&$item) { $item = '%' . $item; })) {
$decode_string = join($decode_string);
// 09-05-2013 terry: Removed because of slow performance
//$decode_string = '%' . implode('%', $decode_string);
$decode_string = urldecode($decode_string);
echo $decode_string;
}
else {
throw new Exception('This should not happen');
}
}