Intereting Posts
Электронная почта Php, отправленная с вопросами по темам в Outlook только PhpStorm: Как добавить заглушки методов из библиотеки PECL, которую PhpStorm в настоящее время не поддерживает? Где именно я помещаю SESSION_START? Предупреждение: preg_match () : окончательный разделитель '/' не найден Ошибка сеанса связи Codeigniter Тестирование производительности на стороне сервера веб-приложения php Насколько безопасен код кодировки PHP bcompiler? как остановить множественный вход пользователя с тем же адресом электронной почты и паролем, как только пользователь уже зарегистрировался Как запустить / остановить cronjob с помощью PHP? что такое 0050 и почему echo 0050 result 40 Отслеживание электронной почты начинается с реального изображения Настройки динамической конфигурации Laravel Доступ к методу родства Почему изображения, поданные с моего веб-сервера, не кэшируются на клиенте? Проверяйте дубликаты перед вставкой

Заменить контент для переменной PHP (сохранены теги HTML)

Я хочу заменить содержимое тега <a> из PHP Variable ( $html_content ) …

Значение переменной переменной $html_content выглядит следующим образом:

 $html_content= "<table> <thead> <tr><th>Customer</th><th>Age</th><th>A</th></tr> </thead> <tbody> <tr><td>Test 1</td><td>25</td><td><a href='www.google.com'>Link</a></td></tr> <tr><td>Test 2</td><td>30</td><td><a href='www.yahoo.com'>Link</a></td></tr> <tr><td>Test 3</td><td>31</td><td><a href='www.rediff.com'>Link</a></td></tr> ... ... ... </tbody> </table> 

Я хочу заменить содержимое в строке каждый последний <td> контент каждого <tr> который содержит тег <a> .

Результат строки выборки:

 <tr><td>Test 1</td><td>25</td><td>Action will be taken soon.</td></tr> <tr><td>Test 2</td><td>30</td><td>Action taken yesterday</td></tr> ... ... 

Мне нужен результат, чтобы заменить каждую строку разными значениями содержимого. Содержимое взято из таблицы. Единственное действие клиента, которое я хочу заменить.

 CUSTOMER TABLE: ------------------------------------------------------ id customer age action ------------------------------------------------------ 1 Test 1 25 Action will be taken soon 2 Test 2 30 Action taken yesterday 3 Test 3 31 Action will take tomw 4 Kumar 28 Suspended ... ... ... ------------------------------------------------------ 

используя эту таблицу, я показал результат фильтрации на одной странице без описания действия вместо тега <a> . (Этот результат является частью этой страницы с именем reports.php ). Я хочу экспортировать эти записи только с описанием поля action в PDF (я использую HTML для класса PDF). На этой странице я отправил эти значения HTML на эту страницу и $html_content в PHP Variable ( $html_content ) на странице export_pdf.php

Записи таблицы не являются фиксированным размером … Это основано на генерации результата сортировки.

Пожалуйста, помогите мне … Спасибо заранее …

Попробуйте следующие коды:

 $html_content= preg_replace("/<a[^>]+\>(.*?)<\/a>/i", "Action will be taken soon.", $html_content); 

С foreach в query

 foreach($row = mysql_fetch_assoc($result)) { $html_content = preg_replace("/<a[^>]+\>(\w+)<\/a>/i", $row['action'], $html_content); } 

Вывод

 <table> <thead> <tr><th>Customer</th><th>Age</th><th>A</th></tr> </thead> <tbody> <tr><td>Test 1</td><td>25</td><td>Action will be taken soon.</td></tr> <tr><td>Test 2</td><td>30</td><td>Action will be taken soon.</td></tr> <tr><td>Test 3</td><td>31</td><td>Action will be taken soon.</td></tr> </tbody> </table> 

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

 $rgReplace = ['foo', 'bar', 'baz']; $i = 0; $html_content=preg_replace_callback('/\<td[^\<\>]*\>\<a[^\<\>]*\>[^\<\>]*\<\/a\>\<\/td\>/', function($rgMatches) use ($rgReplace, &$i) { return $rgReplace[$i++]; }, $html_content); 

(ваш $rgReplace – это массив с нужными $rgReplace ).

или, альтернативно, через DOMDocument API.