PHP代码,将在字符串的所需位置添加空格


php code that will add spaces in desired positions of the string

我有这样的条目:

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'