PHP-код, который будет добавлять пробелы в нужных местах строки - PullRequest
1 голос
/ 06 сентября 2011

У меня есть такие записи:

username08-15-1008-31-1174.86.60.91 http://sitename.com/04442

Где:

  • username = username;)
  • 08-15-10 = год
  • остальные цифры (08-31-1174.86.60.91) представляют другую дату и ip, которые меня не интересуют
  • URL сайта
  • первый 0 ноль после URL - это страница сайта, которая может варьироваться от 1 до, скажем, 7
  • второй и третий номер 44, представляет количество внутренних ссылок
  • четвертое и пятое число представляет количество обратных ссылок

Я ищу php-код, который добавляет «пробел» после:

  • имя пользователя;
  • дата;
  • IP (прямо перед http)
  • после URL;
  • после первого номера;
  • после третьего числа

С помощью этих пробелов я могу отобразить свой код, скопировать, вставить его в 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;
}
?>

Надеюсь, вы можете помочь! Ty!

Ответы [ 2 ]

0 голосов
/ 06 сентября 2011

Хорошо, если я правильно понял, это должно помочь вам:

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 будет заканчиваться на /.

0 голосов
/ 06 сентября 2011

Вы можете использовать для этого регулярное выражение:

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'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...