strpos удалить текст / html - PullRequest
       24

strpos удалить текст / html

0 голосов
/ 31 августа 2011

Я разбираю XML-файл, создатели которого застряли в куче информации в социальных сетях, которая для меня совершенно бесполезна. Я хотел бы удалить его перед вставкой данных в БД.

Проблема в том, что это не все то же самое, некоторые случаи:

Be a Social Butterfly! Connect & Learn More Below: Website • Facebook • Yelp

В некоторых есть больше социальных сайтов, а в других - меньше. Мне бы очень хотелось удалить всю эту часть. также это vardump после запуска strip_tags. Оригинал выглядит так:

<strong>Be a Social Butterfly! Connect & Learn More Below:</br></strong>
<a target="_blank" href="http://www.kiran-indian.com">Website</a> •<a target="_blank" href="http://www.facebook.com/pages/Kiran-Indian-Cuisine/55785994435"> Facebook</a> • <a target="_blank" href="http://www.yelp.com/biz/kiran-indian-cuisine-new-york">Yelp</a>

Я использовал preg_replace, чтобы избавиться от всего предложения «быть социальной бабочкой ....» с помощью

$description = strip_tags(preg_replace('/\bBe a Social Butterfly! Connect & Learn More Below\b/', '', $value['redemptionLocations']['description']));

Мой приятель предложил использовать strpos для поиска первых / последних частей и substr, чтобы удалить все промежуточное, но, к сожалению, я недостаточно продвинут, чтобы понять, как это сделать.

Заранее спасибо!

поле описания:

       
Food always does one thing. It helps keep you alive. But it can do more. It can be an experience that educates, transports, and invigorates you. Lunch or dinner at <a target="_blank" href="http://www.kiran-indian.com/home.htmls">Kiran Indian Cuisine</a> a lot more than a chance to keep from starving for another day --- it&#8217;s a chance to depart from the norm with delicious homemade dishes using the freshest of ingredients and the most aromatic seasoning available. They are open 7 days a week from 11 a.m. to 11 p.m. and accept all the major credit cards, plus when you order online from the surrounding area, delivery is 100% free of charge.</br></br>

<strong>Be a Social Butterfly! Connect & Learn More Below:</br></strong>
<a target="_blank" href="http://www.kiran-indian.com">Website</a> &#8226;<a target="_blank" href="http://www.facebook.com/pages/Kiran-Indian-Cuisine/55785994435"> Facebook</a> &#8226;  <a target="_blank" href="http://www.yelp.com/biz/kiran-indian-cuisine-new-york">Yelp</a>

кажется, что этот код вставляется сюда автоматически, настраивает asci / и т.д.

1 Ответ

0 голосов
/ 31 августа 2011

Вам нужно найти позицию первой строки во всем тексте, для этого используйте strpos, затем вам нужно найти позицию в конце фрагмента, который вы хотите удалить, снова используйте strpos. Теперь у вас есть начальная и конечная точка фрагмента, который вы хотите удалить, используйте substr_replace, чтобы заменить его ничем ''. substr_replace принимает длину фрагмента для удаления в качестве 4-го параметра, а не позицию, как в случае с 3-м параметром, поэтому вам необходимо вычесть 1-ю позицию int из 2-й позиции int, чтобы определить длину.

$feedtext='<description> this part is important...  be a social butterfly .. blah blah etc etc whatever whatever </description>';

$pos1=strpos($feedtext,'be a social butterfly');
$pos2=strpos($feedtext,'</description>');
$len=$pos2-$pos1;
$newtext=substr_replace($feedtext,'',$pos1,$len);

echo $newtext;

проверено: http://www.ideone.com/1X5gI

...