Jump to content

subtract string from string


dfrojd

Recommended Posts

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>&nbsp;&gt;&nbsp;</span> Kanarische Inseln\n";
$teststr .= "      <span class=g10>&nbsp;&gt;&nbsp;</span> Insel Teneriffa-Süd\n";
$teststr .= "      <span class=g10>&nbsp;&gt;&nbsp;</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;\">&nbsp;<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
Link to comment
Share on other sites

Does this help?

[code]<?php
function 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]
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.