Как добавить ссылки на HTML-форматированный текст? (случайно, с помощью программы) - PullRequest
0 голосов
/ 03 августа 2009

Я использую PHP. У меня есть некоторые статьи, хранящиеся в MySQL, и все они имеют какой-то стиль (например, с некоторыми CSS или тегами). Теперь я должен добавить некоторые ссылки на некоторый текст в случайном порядке и автоматически. Это означает, что я должен добавить ссылки к тексту и убедиться, что ссылки не нарушают стиль.

Я думаю, самая сложная часть - это как добавлять ссылки, а не нарушать стиль. Есть ли какие-либо правила или примеры, которым я могу следовать, чтобы сделать это на PHP?

Любая помощь и советы приветствуются ~

Обновлен:

Может быть, этот вопрос заключается в том, как выбрать «правильный текст» для добавления ссылок. Если текст уже есть в ссылке, он не подходит. Так что мне с этим делать?

Например :

<div>This is an article with some <a href="http://originallinks.com">original links</a></div>

Мне нужно выбрать текст, чтобы добавить ссылки. Текст выбирается случайным образом программой. Если текст «статья»:

<div>This is an <a href="http://anotherlink.com">article</a> with some <a htef="originallinks.com">original links</a></div>

Это будет нормально, но если текст «оригинал»:

<div>This is an article with some <a htef="originallinks.com"><a href="http://anotherlink.com">original</a> links</a></div>

Это было бы плохо, потому что ссылка была добавлена ​​в другую ссылку.

Так что моя проблема в том, как правильно выбрать текст для добавления (этот процесс происходит случайно и автоматически). Что я должен принять во внимание, чтобы сделать это?

Ответы [ 3 ]

1 голос
/ 03 августа 2009

Если вы создаете стиль CSS для ссылок, где вы указываете все свойства (цвет, размер ...), я не вижу, как это может нарушить ваш стиль, так как вы просто помечаете текст с правильной разметкой.

Допустим, у вас есть:

<div>Some text with style and a link and some more text</div>

станет

<div>Some text with style and <a style="link-style">a link</a> and some more text</div>

Я не понимаю, где это может нарушить твой стиль ...

0 голосов
/ 04 августа 2009

Вы вставляете теги ссылок, используя php? Может быть решена путем нескольких проходов, после того, как вы добавите ссылки на «article», затем используйте explode () для начального и конечного тегов, чтобы отделить части, которые уже являются ссылками, и исключить те из них, к которым добавлены теги .

Может быть, лучший способ сделать это с помощью регулярных выражений, с помощью Explode вы можете получить головную боль, пытаясь отследить, какие части массива являются ссылками. Кроме того, вам придется иметь дело с повторной компоновкой и последующей вставкой тегов.

0 голосов
/ 03 августа 2009

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

Пример:

div.mycontent {
    color: #333333;
    font-weight: bold;
}
div.mycontent a {          // add this for links
    color: #333333;
    font-weight: bold;
    text-decoration: none;
}
...