- var_dump: documentation ( source)
- parse_url: documentation ( source)
- preg_replace: documentation ( source)
- strtolower: documentation ( source)
<?php
/**
* Parse an address spec string into an array
*
* @param $address
* @return array
* @throws \LogicException
*/
function parseAddress($address)
{
if ((!($parts = parse_url($address)) && !($parts = parse_url(preg_replace('#^([^:]+:/)//#', '$1', $address))))
|| !isset($parts['scheme'])
) {
throw new LogicException('Invalid address spec: ' . $address);
}
$parts['scheme'] = strtolower($parts['scheme']);
return $parts;
}
var_dump(parseAddress('unix:///foo/bar.sock'));