2014-12-18 2 views
1

У меня есть массив JSON как это:Удалить неопределенный кусок строки (URL-адрес)

[ 
    { 
     "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" 
    } 
] 

Иногда (не всегда) строка заголовка есть ссылка на него. Как удалить ссылку и все в ней? Я даже не хочу текст внутри якоря. Я хочу закончить с JUST «Bones of the Hills» в качестве названия. Как я могу это сделать в php? У меня есть googled нагрузки, но ничего, казалось, не работало.

+0

, это js на массиве, созданном на стороне php или javascript? –

ответ

0

Вы можете использовать PHP встроенный в функции strip_tags() по названию, она удалит все HTML элементы из заголовка, включая ссылки

0

Вы можете использовать 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); 
+0

Я думаю, что ваш ответ неверен, посмотрите на эту strip_tags - разделите HTML и PHP-теги от строки, чтобы ваш код не дал ожидаемых результатов, проверьте руководство -> http://php.net/strip_tags –

0

первый всего ваш массив 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 " 
+0

Я не могу измените строку. Мне это дано, я не контролирую это. – jeremys

+0

@jeremys, поэтому без изменения строки попробуйте мой ответ. :) начиная с $ arr = json_decode ($ json, true); –

 Смежные вопросы

  • Нет связанных вопросов^_^