Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Подсветка в тексте методами PHP


Рекомендуемые сообщения

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

Ссылка на комментарий
Поделиться на другие сайты

Если я правильно понял, у вас ссылки типа index.php#chapter2

Тогда делаете так ( в тексте)

<a name="#chapter2><?phpif (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == 'chapter2') {  echo '<div style="color: #ff0000">';}?>тесткс...if (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == 'chapter2') {  echo '</div>';}?></a>

Меняете стиль и готово

Можно конечно не много оптимизировать чтоб не делало parse_url() каждий раз

Решение не очень красивое, но если текст статический, а не из БД например, другого нет :no:

Ссылка на комментарий
Поделиться на другие сайты

Странно, сдела все по предложенному варианту

<A name="#1"><?phpif (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == "1") {  echo '<div style="color: #0000ff">';}?><strong>АЛЮМИНИЙ НИТРИД</strong><?php if (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == "1") {  echo '</div>';}?></A>

, но ничего не происходит - нет подсветки

Ссылка на комментарий
Поделиться на другие сайты

Проверте HTML изходник страници (View->Source), присуствуеть ли ваш div

Если да - то проблема у вас в стиле... попробуйте поставить <div> перед a или определить стиль a div {}

Если нет - укажите версию PHP ?

Ссылка на комментарий
Поделиться на другие сайты

Версия PHP - 5.2.3

Сделал так:

<div class="pasport2"><A name="1"><?phpif (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == '1') {  echo '<div style="color:#0000ff">';}?><strong>АЛЮМИНИЙ НИТРИД</strong><?php if (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == '1') {  echo '</div>';}?></A></div>

Для class="pasport2" в CSS у меня определен стиль: .pasport2 {background-color:#00CCFF}, но изменений нет.

Наверное было бы правильно показать большую (табличную) часть кода:

<td align="center" class="pasport2" width="45%"><div class="pasport2"><A name="1"><?phpif (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == '1') {  echo '<div style="color:#0000ff">';}?><strong>АЛЮМИНИЙ НИТРИД</strong><?php if (parse_url($_SERVER['REQUEST_URI'],PHP_URL_FRAGMENT) == '1') {  echo '</div>';}?></A></div><br>	ТУ 6-09-110-75<br>	Формула: <strong>AIN</strong></td>
Ссылка на комментарий
Поделиться на другие сайты

Проблема в том, что некоторые браузеры, в частности IE не передают на сервер данные URL написаные после символа #

Придется чуть усложнить ссылки, то есть вместо page.php#chapter2 должно быть page.php?a=chapter2chapter2

соответственно изменится и код пхп предложенный Darhazer'ом

<a name="#chapter2><?phpif ($_GET['a'] == 'chapter2') {  echo '<div style="color: #ff0000">';}?>тесткс...if ($_GET['a'] == 'chapter2') {  echo '</div>';}?></a>
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...