我有一个系统可以存储各种网站的某些文件。
有些网站显示为基本:
www . myrandomsite . com
www . yetanothersite . com /sublevel/
http: somefunky.sub . org
......等等。
我想以最安全,最明智的方式将这些转换为文件夹名称。
到目前为止我所拥有的:
preg_replace('/[^A-Za-z0-9 ]/', '-', 'www.yetanothersite.com/sublevel/');
返回:字符串(32)“www-yetanothersite-com-sublevel - ”
虽然这不是一个漂亮的文件夹名称,但是在正确的轨道上。
鉴于域名格式的多样性,我想创建最干净,最简单的解决方案。
需要一些建议。
答案 0 :(得分:0)
请尝试以下操作:
$urls = array('www.myrandomsite.com', 'http://somefunky.sub.org', 'http://www.yetanothersite.com/sublevel/', 'http://stackoverflow.com/users///1401975/');
// PHP 5.3+ IS A MUST
$folders = preg_replace_callback('#(?<protocol>(https?|ftp)://)|(?<end>/+(?=$))|(?<replace>/+)#', function($m){
if(isset($m['protocol'][1])){return '';}
if(isset($m['end'][0])){return '';}
return '-';
}, $urls);
print_r($folders);
<强>输出:强>
Array
(
[0] => www.myrandomsite.com
[1] => somefunky.sub.org
[2] => www.yetanothersite.com-sublevel
[3] => stackoverflow.com-users-1401975
)
脚本将: