我有这样的条目:
username08 - 15 - 1008 - 31 - 1174.86.60.91http://sitename.com/04442
地点:
- username = username;)
- 08-15-10 = year
- 其余的数字(08-31-1174.86.60.91)表示另一个我不感兴趣的日期和ip
- 网址
- url后面的第一个0 0是网站的网页排名,可以从1到7不等
- 第二个和第三个数字44,表示内部链接数
- 第四个和第五个数字表示反向链接的数量
我要找的是一个php代码,将添加"空间"后:
- 用户名,
- 日期;
- IP(就在http之前)
- 第一个数字后面; 第三个数字后面的
有了这个空格,我可以回显我的代码,复制粘贴到excel中,在空格的帮助下,我可以将数据分成几列。这样,我就可以操纵它,比如最老的网站,反向链接最多,外向链接最少。等。
我在想这样的东西,但我不知道如何添加空格:
<?
$sites = array(
'username08-15-1008-31-1174.86.60.91http://sitename.com/04442',
'username08-11-1009-05-1196.44.171.207http://sitename.com/034'
);
foreach ($sites as $site)
{
// HERE WILL BE THE CODE
echo $site;
}
?>
希望你能帮忙!泰!
好的,如果我没理解错的话,下面的代码应该能帮你解决这个问题:
for($i = 0; $i < count($sites); ++$i) {
$sites[$i] = preg_replace("/('w*)('d'd-'d'd-'d'd)'d'd-'d'd-'d'd(['d.]*)(.*'/)('d)('d'd)('d*)/","$1 $2 $3 $4 $5 $6 $7",$sites[$i]);
echo $sites[$i];
}
请注意,这假设您的用户名仅由字母、数字或下划线组成,并且您的URL以/.
您可以使用正则表达式:
preg_match('/('w+)('d{2}-'d{2}-'d{4})-('d{2}-'d{2})('d+'.'d+'.'d+'.'d+)(.*)/',$string,$matches);
之后,只使用$matches
作为数组,提取字符串的每一部分。与您喜欢的任何间隔符相关联。$matches[1].' '.$matches[2].'etc'