A Representative Line is a short snippet that makes you think, "wow, I'd hate to see the rest of the code." A CodeSOD is a longer snippet, which also frequently makes you think, "wow, I'd hate to see the rest of the code," but also is bad in ways that require you to look at the relationship between the lines in the code.
I bring that up, because today's code sample is a long section, but really, it's just a collection of representative lines. Each line in this just makes me die a little on the inside.
Belda found this:
## helper functions
function stripmagic($x)
return get_magic_quotes_gpc() ? stripslashes($x) : $x;
function pre_r(&$x)
return '<pre>'.PHSC(print_r($x, true)).'</pre>';
function PSS($x)
return str_replace('\\"','"',$x);
function PVS($x)
return preg_replace("/\n[^\\S\n]*(?=\n)/", "\n<:vspace>", $x);
function PVSE($x) return PVS(PHSC($x, ENT_NOQUOTES));
function PZZ($x,$y='') return '';
function PRR($x=NULL)
is_null($x)) $GLOBALS['RedoMarkupLine']++; return $x;
function PUE($x)
return preg_replace('/[\\x80-\\xff \'"<>]/e', "'%'.dechex(ord('$0'))", $x);
function SDV(&$v,$x) if (!isset($v)) $v=$x;
function SDVA(&$var,$val)
foreach($val as $k=>$v) if (!isset($var[$k])) $var[$k]=$v;
This collection of one-line "helper" functions has it all. Cryptic function names. PRR
mutates global variables. PZZ
just… returns an empty string. I don't know what PHSC
does, and I don't want to, but it's called inside of pre_r
and PVSE
. Which I also don't know what they do. Speaking of PVSE
, I note the regex is using backreferences, which is some advanced regex but I still have no idea what it's doing. I could figure it out, but I don't want to. PUE
looks like it might be handling some misencoded characters, maybe. SDV
is maybe kinda a coalesce function.
Each line is its own representative line. None of this is code I'd want to maintain.
On the flip side, the abbreviated function names, when read in reverse order, are exactly the sounds I made when I read this code: "SDVASDVPUEPRRPZZPVSEPVSPSS".
It's okay, the doctors say I'll make a full recovery.
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!