Удвоение элементов в массиве результатов при очистке содержимого HTMLPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Удвоение элементов в массиве результатов при очистке содержимого HTML

Сообщение Anonymous »

Я просматриваю старую страницу с более чем 10 000 комментариев, которую пытаюсь импортировать в WordPress.
Я использую библиотеку simple_html_dom.php, которая в этом Регистр не важен.
Я получаю URL-адрес с 24 первыми сообщениями, просматривающими его, и получаю элемент с комментариями.

Код: Выделить всё

$url = 'http://xx/aktualnosci,wszystkie,0,'.$x.'.html'; //some URL with first 24 posts
$html = file_get_html($url);

$articlesCount = 0;
$commentsCount = 0;

foreach ($html->find('ul.news_codrugi li') as $article) { //get all 24 posts urls
$rawLink = $article->find('a');

foreach ($rawLink as $testLink) {
$link = 'http://xx/'.$testLink->href;

$rawTitle = $testLink->href;
$rawTitle = explode(",", $rawTitle);
$ggTitle = $rawTitle[1];
$htmlNew = file_get_html($link);

foreach ($htmlNew->find('div.komentarz_lista') as $comment) { //comment element
$comm = $comment->find('p');
foreach ($comm as $commText) {
$cleanerCommText = trim(strip_tags($commText));
$item['commRaw'] = $cleanerCommText;
$comments[] = $item;
}
$commentsCount++;
}
$articlesCount++;
}
//unset($articles);
}
На данный момент все в порядке, все комментарии у меня в массиве.
Проблема в том, что текст комментария, дата и автор находятся в элементе без любой класс или идентификатор, поэтому у меня нет триггера для их отдельного получения, поэтому мой массив

[0] => text, [1] => дата и автор, [3] => текст, [4] => дата и автор и т. д.

Я пытаюсь поместить это в новый массив типа [текст] => текст, [знак] => дата и автор:

Код: Выделить всё

$x = $commentsCount;
echo $x.'
';

$rawComm = array_column($comments, 'commRaw');
$rawCommCount = count($rawComm);

echo 'Pobrane wpisy: '.$rawCommCount.'
';
$z = 0;

foreach($rawComm as $commItem) {
if($z % 2 == 0) {
$commArr['text']    = $commItem;
}else{
$commArr['sign']    = $commItem;
//echo $commItem;
}
echo 'Numer wpisu: '.$z.'
';
$z++;
}
В последнем цикле foreach($rawComm as $commItem), когда я повторяю значения, все в порядке, у меня правильно напечатан текст комментария, дата комментария и автор. Но когда я пытаюсь поместить его в новый массив $commArr, я получаю двойные элементы, поэтому мой массив вдвое больше, и все удвоено.
И почему Мне это нужно в новом массиве? Потому что я хочу поместить это в БД.
Поэтому на данный момент я не знаю, что вызывает эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/600 ... ml-content
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»