У меня есть массив JSON, как это:
[
{
"title": " Bones of the Hills <a href="/series/44108-conqueror" class="greyText">(Conqueror #3) </a>",
"author": "Conn Iggulden",
"format": "Hardcover",
"pages": "518",
"rating": "4.29",
"image": "http://d.gr-assets.com/books/1347616868l/3276637.jpg"}
]
Иногда (не всегда) строка заголовка содержит ссылку. Как удалить ссылку и все в ней? Я даже не хочу текст внутри якоря. Я хочу закончить с просто «Bones of the Hills» в качестве названия. Как я могу сделать это в php? Я гуглил грузы, но ничего не получалось.
Вы можете использовать встроенную функцию php strip_tags () для заголовка, он удалит все элементы HTML из заголовка, включая ссылку
Вы можете использовать функцию strip_tag (), чтобы избежать этой ошибки
$str='[{"title": " Bones of the Hills <a href="/series/44108-conqueror" class="greyText">(Conqueror #3) </a>","author": "Conn Iggulden","format": "Hardcover",';
$str.='"pages": "518","rating": "4.29","image": "http://d.gr-assets.com/books/1347616868l/3276637.jpg"}]';
echo $str2=strip_tags($str);
$array=json_decode($str2);
print_r($array);
Прежде всего, ваш массив JSON неверен, проверьте это
[
{
"title": " "title": " Bones of the Hills <a href=\\"/series/44108-conqueror\\" class=\\"test\\">(Conqueror #3) </a>",
"author": "Conn Iggulden",
"format": "Hardcover",
"pages": "518",
"rating": "4.29",
"image": "http://d.gr-assets.com/books/1347616868l/3276637.jpg"}
]
использование "title": " Bones of the Hills <a href=\\"/series/44108-conqueror\\" class=\\"test\\">(Conqueror #3) </a>"
вместо
<a href="/series/44108-conqueror" class="greyText"
затем
$arr = json_decode($json,true);
$arr['title'] = preg_replace("/<a.+?href.+?>.+?<\/a>/is","",$arr['title']);
var_dump($arr['title']);
теперь ваш титул будет
string(20) " Bones of the Hills "