Я хочу заменить содержимое тега <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.