dfrojd Posted September 2, 2006 Share Posted September 2, 2006 Hi folks,sorry for a surely simple question but (I swear) I have tried all normal sources for hours now and cant find what I need (sob).I just simply need to subtract a part of a string from a larger string and keep the remainder.The strings involved contain html code with lots-o-tags and must stay that way.maybe can someone help.The code in question finds two parts of a string using a regex.No all I need is to subtract the two found strings from the original and keep the rest.[code]<?php$teststr = "<table cellpadding=5 cellspacing=0><tr><td align=center width=358 nowrap style=\"color:#CCDDCC\">\n";$teststr .= "<img src=\"Karten/Regionen/164-22-11-Armenime.gif\" alt=\"Lage von Armenime auf den Kanarischen Inseln\" \n";$teststr .= "width=350 height=150 class=r><br>Lage auf den Kanarischen Inseln</td></tr></table>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Detail-Informationen zu diesem Angebot</span>\n";$teststr .= " <div class=r style=\"margin-top:12px;\">\n";$teststr .= " <strong>Finca Constanza mit Pool - Ruhe - Luxus - Golf - Aloe-vera - Erholung - Sonne\n";$teststr .= "</strong><br>\n";$teststr .= " <br>\n";$teststr .= " 6 Wohneinheiten auf 10.000 qm Finca mit Pool ***** Herrenhaus 204m2 -9 Pers. ***** Patio Suite -8 Pers.\n";$teststr .= "***** Bungalow, Cesar -6 Pers. ***** Apartment, Casita Sira 4 Pers. ***** Bungalow, Cleopatra -4 Pers. *****\n";$teststr .= "Wintergartenhaus -3 Pers<br>\n";$teststr .= " <br>\n";$teststr .= " Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi\n";$teststr .= "Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi\n";$teststr .= "Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi \n";$teststr .= "Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi \n";$teststr .= "Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi Detailinfos macht Siggi \n";$teststr .= "Detailinfos macht Siggi Detailinfos macht Siggixxx\n";$teststr .= " </div>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Besonderheit Titel 1</span>\n";$teststr .= " <div class=r>\n";$teststr .= " Besonderheit: Beschreibung: 1\n";$teststr .= " </div>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Besonderheit Titel 2</span>\n";$teststr .= " <div class=r>\n";$teststr .= " Besonderheit: Beschreibung: 2\n";$teststr .= " </div>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Besonderheit Titel 3</span>\n";$teststr .= " <div class=r>\n";$teststr .= " Besonderheit: Beschreibung: 3\n";$teststr .= " </div>\n";$teststr .= " <br>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Urlaubsort Armenime</span>\n";$teststr .= " <div class=r>\n";$teststr .= " Spanien\n";$teststr .= " <span class=g10> > </span> Kanarische Inseln\n";$teststr .= " <span class=g10> > </span> Insel Teneriffa-Süd\n";$teststr .= " <span class=g10> > </span> Armenime\n";$teststr .= "<br><br>nfos zum<br>Urlaubsort: -... -Die von der Hauptstrasse ca. 400 m abseits und sehr ruhig gelegene Finca\n";$teststr .= "Constanza bietet unseren Gästen optimalen Erholungsgenuss. Die geteerte, schmale Privatstrasse endet an der\n";$teststr .= "Finca, sodass kein Durchgangsverkehr besteht. Da auch kein Baumaschinen-Lärm in der näheren Umgebung\n";$teststr .= "stört, wird das Fincagelände den Ruhe suchenden Gästen in jeder Weise gerecht.\n";$teststr .= " </div>\n";$teststr .= " <div style=\"text-align:right; width:600px;\"> <a href=\"#Anreise-Armenime\" class=f8>Anreise nach Armenime</a></div>\n";$teststr .= " <br>\n";$teststr .= " <span class=g12f>Freizeitangebote in der Umgebung</span> \n";$content = $teststr;// DETAILINFOS -------------------------------------------------- FD ist sozusagen die vordere Grenze....preg_match("=Detail-Informationen zu diesem Angebot(.*)<\/div>=siU", $content, $hit);$data['obj_detail'] = trim($hit[1]);echo "obj_detail = ".$data['obj_detail']."<br>\n";// ORT INFO -------------------------------------------------- FD ist sozusagen die hintere Grenze....preg_match("=<span class\=g12f>Urlaubsort(.*)<\/div>=siU", $content, $hit);$data['obj_ort_info'] = trim($hit[1]);echo "obj_ort_info = ".$data['obj_ort_info']."<br>\n";?>[/code]MOD EDIT - code tags added Quote Link to comment Share on other sites More sharing options...
onlyican Posted September 2, 2006 Share Posted September 2, 2006 have you tried substr()http://es2.php.net/manual/en/function.substr.phpCheck the other string functions there as well Quote Link to comment Share on other sites More sharing options...
Barand Posted September 2, 2006 Share Posted September 2, 2006 Does this help?[code]<?phpfunction subtractString ($original, $remove) { $len = strlen($remove); $pos1 = strpos($original, $remove); $res = substr($original,0,$pos1) . substr($original,$pos1+$len); return $res;}$teststr = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla lacinia justo at velit. Nunc porttitor nisl porta mi. Curabitur sollicitudin purus vel felis. Maecenas nunc. Nulla facilisi. Integer vel ante sit amet ipsum consequat facilisis. Suspendisse hendrerit urna vel erat. Quisque auctor, erat nec ullamcorper sollicitudin, wisi leo hendrerit nisl, eu auctor turpis justo quis justo. Proin arcu metus, commodo quis, tincidunt varius, fermentum eget, lectus. Ut tellus. Sed nec dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nam sed magna.";$str1 = "Curabitur sollicitudin purus vel felis.";$str2 = "Proin arcu metus, commodo quis, tincidunt varius, fermentum eget, lectus. Ut tellus.";echo "<p>$teststr</p>";$result = subtractString($teststr, $str1);$result = subtractString($result, $str2);echo "<p>$result</p>";?>[/code] Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.