Цикл с менющейся переменной

12 3
HR
На сайте с 22.08.2010
Offline
94
1381

Помогите пожалуйста допилить скрипт..

Задача такая: Нужно сделать скрипт автоматической простановки ссылок на сайте. Цикл должен взять первый сайт из массива и проставить ссылку в какой нибудь статье, затем взять второй сайт из массива и проставить в другой статье и т.д. Еще тут нужно добавить условие, если в статье нет ссылки, то проставить ссылку.

Вот то что я смог наковырять, но дальше не пойму как сделать.

<?php


$db = mysql_connect ("localhost","xxx","73sk8pkF");
mysql_select_db ("xxx",$db);
mysql_query('SET NAMES cp1251');

$result = mysql_query ("SELECT ID,post_content FROM wp_posts WHERE post_author = '3' AND post_status = 'publish'",$db);
$myrow = mysql_fetch_array ($result);


$sites = array(
"http://11.ru/",
"http://22.ru/"
);


foreach ( $sites as $site ) {

do {
if (!strstr($myrow[post_content], 'mylink'))
{
$myrow[post_content] = $myrow[post_content].'<p>Источник: <a href="'.$site.'" class="mylink">'.$site.'</a></p>';
echo $myrow[post_content]."<br /><hr>";

//mysql_query ("UPDATE wp_posts SET post_content = '$myrow[post_content]' WHERE post_author = '3' AND post_status = 'publish'",$db);
}
}
while ($myrow = mysql_fetch_array ($result));

}

Походу тут нужно как то организовать цикл в цикле..

SO
На сайте с 22.07.2007
Offline
83
#1

Я не помню на вскидку структуру БД у wordpress, а что тут не так?

Единственное, что лучше проверку на присутствие ссылок делать через preg_match(), т.к. хз как код ваших ссылок выглядит точно.

if ( !preg_match('/(<a[^>]*)href=(\"?)([^\s\">]+?)(\"?)([^>]*>)/ismU', $myrow[post_content] ) ){

Ну и не мешало бы подумать, что ссылку надо искать не соответствующую вашему доменному имени, может там есть внутренние ссылки.

Как то так, не проверял работоспособность.

HR
На сайте с 22.08.2010
Offline
94
#2

Немного подкорректировал код, уже есть результат (можете проверить скрипт), но почему то первый элемент из массива дублируется. Не могу понять как устранить этот баг. Результат этого скрипта выглядит так :

текст 1

Источник: http://11.ru/

текст 2

Источник: http://11.ru/

текст 3

Источник: http://22.ru/

S
На сайте с 30.09.2016
Offline
469
#3

Бррр... Лучше бы ничего не писали, а просто попросили написать скрипт по заданным условиям... Потому что чушь написана, прошу прощения, если обидел.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
HR
На сайте с 22.08.2010
Offline
94
#4
Sitealert:
Бррр... Лучше бы ничего не писали, а просто попросили написать скрипт по заданным условиям... Потому что чушь написана, прошу прощения, если обидел.

не обидели, сам вижу что не работает..

---------- Добавлено 24.12.2016 в 11:42 ----------

Может кто подскажет правильное направление. Условия такие: нужно найти статью без ссылки, затем взять домен из массива и вставить в конец текста этот домен и т.д. пока не закончатся все домены в массиве. Вроде просто, но как реализовать не пойму..

S
На сайте с 30.09.2016
Offline
469
#5

Да у Вас и само условие непонятное. Я вот всё пытаюсь его осмыслить, но никак не получается:

"нужно найти статью без ссылки" - а если все без ссылки, то какую выбрать?

"пока не закончатся все домены в массиве" - статей 30, а доменов 10, что делать с остальными статьями?

HR
На сайте с 22.08.2010
Offline
94
#6
Sitealert:
Да у Вас и само условие непонятное. Я вот всё пытаюсь его осмыслить, но никак не получается:
"нужно найти статью без ссылки" - а если все без ссылки, то какую выбрать?

первую попавшуюся.

Sitealert:

"пока не закончатся все домены в массиве" - статей 30, а доменов 10, что делать с остальными статьями?

прервать цикл, когда будут проставлены все домены.

S
На сайте с 30.09.2016
Offline
469
#7
HEMASTER:
прервать цикл, когда будут проставлены все домены.

Но тогда ссылки будут в первых 10 статьях. А остальные 20, или 200, или 990 будут без ссылок. Смысл какой?

HR
На сайте с 22.08.2010
Offline
94
#8
Sitealert:
Но тогда ссылки будут в первых 10 статьях. А остальные 20, или 200, или 990 будут без ссылок. Смысл какой?

Дак в этом и смысл, проставить на сайте в статьях все ссылки, зачем трогать остальные статьи? Если вы не можете осознать элементарные вещи, то не пишите здесь, потому что помощи нет, а глупые, вводящие в заблуждение всех, вопросы есть.

S3
На сайте с 29.03.2012
Online
362
#9

Сотрите это и никому не показывйте!!! mysql_connectпри работе с Вордпресс - сразу отрубить руки.Если хотите сохранить руки, то:

- Идете в кодекс(если проблема с англ- на каму) Читаете про правильное подключение к базе в ВП и использование своих таблиц

- Читаете про регулярки и как проверить в тексте наличие ссылок - это пара строк кода, получил the_content() Проверил, выполнил что нужно

- читаете про апдейт записей для ВП, делаете.

Или берете 50 баксов, несете специально обученному человеку и он вам за пару часов пишет плагин.

HR
На сайте с 22.08.2010
Offline
94
#10
Sly32:
Сотрите это и никому не показывйте!!! mysql_connectпри работе с Вордпресс - сразу отрубить руки.Если хотите сохранить руки, то:

- Идете в кодекс(если проблема с англ- на каму) Читаете про правильное подключение к базе в ВП и использование своих таблиц
- Читаете про регулярки и как проверить в тексте наличие ссылок - это пара строк кода, получил the_content() Проверил, выполнил что нужно
- читаете про апдейт записей для ВП, делаете.

Бред , все прекрасно работает.

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий