Avatar of eagle00789
eagle00789Flag for Netherlands asked on

str_replace only between > & < symbols (the end and start-character of html-tags)

I'm writing a plugin for Joomla that can replace abbrevs with abbrev tags and it's description (it uses span tags for Internet Explorer and the abbrev tags for FireFox). In the attached code snippet, you can see that i use str_replace for this purpose. Now i have ran into a small problem. 1 of my images name contains a word that is to be replaced by the str_replace function. If i let this happen, the image is not displayed anymore, as the file can't be found due to the wrong name thx to str_replace.
So what i basicly want is that str_replace only works between > and < character. Any clue how i can change my code snippet attached so that it only works between the above mentioned characters (or for that matter only outside ANY html tags??
<?php
        $style_cursor = $this->params->get('cursor','default');
        $style_border_width = $this->params->get('border-width','dashed');
        $style_border_style = $this->params->get('border-style','dashed');
        $style_border_color = $this->params->get('border-color','dashed');
        $style = "abbr, acronym, span.abbr {"
            . "\n cursor: ".$style_cursor.";"
            . "\n border-bottom: ".$style_border_width."px ".$style_border_style." ".$style_border_color.";"
            . "\n}";
        $document = &JFactory::getDocument();
        $document->addStyleDeclaration( $style );
        $abbrevs = $this->getAbbrev();
        $replacements = $this->createReplacements();
        $article->text = str_replace($abbrevs, $replacements, $article->text);
?>

Open in new window

Web DevelopmentPHPWeb Languages and Standards

Avatar of undefined
Last Comment
eagle00789

8/22/2022 - Mon
ASKER
eagle00789

point increase
danrwhit

Try using ereg_replace.  The following example replaces html tags with nothing, leaving just the text.
<?php
 
$output = "<html>hi there</html>";
 
echo ereg_replace("/<[^\/](.*)>/", "", $output);
 
?>

Open in new window

ASKER
eagle00789

well, that's where the problem is. i don't want to remove the tags, but just work around them.
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
danrwhit

eagle,

Give this a try.  If it doesn't work can you post a sample of what is contained in $abbrevs so I can test it further?


$article->text = str_replace(ereg_replace("/<[^\/](.*)>/", "", $abbrevs), $replacements, $article->text);

Open in new window

ASKER
eagle00789

here is a snippet of what is contained inside the abbrevs var and also a snippet of what is contained inside the replacements var. i also post a snippet from what is contained inside the $article->text var.

my goal with this is that str_replace (or something like that) will search $article->text for any word in the abbrevs var (array) and replace it with the same content out of the replacements var (array). But sometimes (currently don't have an example) it replaces a word that is between < en > where it shouldn't replace anything.

the $abbrev, $replacements and $article->text are all pulled from db. ($article->text is a joomla part, $abbrevs and $replacements are my own bits)
$abbrevs = 		Array
(
    [0] => DBO
    [1] => S.A.C.
    [2] => ADV
    [3] => AVI
    [4] => BAS
    [5] => CITO
    [6] => H.A.V.O.
    [7] => H.B.O.
    [8] => H.P.
    [9] => I.B.-er
    [10] => I.L.
    [11] => L.G.F.
    [12] => L.I.O.
    [13] => LVS
    [14] => M.B.O.
    [15] => M.D.G.O.
    [16] => M.R.
    [17] => NT2
    [18] => O.K.P.
    [19] => P.C.L.
    [20] => R.T.-er
    [21] => S.B.O.
    [22] => V.E.B.O.
    [23] => V.M.B.O.
    [24] => V.O.
    [25] => V.S.D.
    [26] => V.W.O.
    [27] => W.P.O.
    [28] => W.S.N.S.
    [29] => BAPO
    [30] => VVE
    [31] => DMT
)
$replacements = Array
(
    [0] => <abbr title="Directeuren-Bestuurs-Overleg"><span class="abbr" title="Directeuren-Bestuurs-Overleg">DBO</span></abbr>
    [1] => <abbr title="schooladviescommissie"><span class="abbr" title="schooladviescommissie">S.A.C.</span></abbr>
    [2] => <abbr title="Arbeids Duur Verkorting"><span class="abbr" title="Arbeids Duur Verkorting">ADV</span></abbr>
    [3] => <abbr title="Analyse Van Individualiseringsvormen (technisch lezen)"><span class="abbr" title="Analyse Van Individualiseringsvormen (technisch lezen)">AVI</span></abbr>
    [4] => <abbr title="Bouwen aan een Adaptieve School"><span class="abbr" title="Bouwen aan een Adaptieve School">BAS</span></abbr>
 
    [5] => <abbr title="Centraal Instituut Toets Ontwikkeling"><span class="abbr" title="Centraal Instituut Toets Ontwikkeling">CITO</span></abbr>
    [6] => <abbr title="Hoger Algemeen Voortgezet Onderwijs"><span class="abbr" title="Hoger Algemeen Voortgezet Onderwijs">H.A.V.O.</span></abbr>
    [7] => <abbr title="Hoger Beroeps Onderwijs"><span class="abbr" title="Hoger Beroeps Onderwijs">H.B.O.</span></abbr>
    [8] => <abbr title="Handelings Plan"><span class="abbr" title="Handelings Plan">H.P.</span></abbr>
    [9] => <abbr title="Intern Begeleider/ster"><span class="abbr" title="Intern Begeleider/ster">I.B.-er</span></abbr>
 
    [10] => <abbr title="Individuele Leergang"><span class="abbr" title="Individuele Leergang">I.L.</span></abbr>
    [11] => <abbr title="Leerling Gebonden Financiering"><span class="abbr" title="Leerling Gebonden Financiering">L.G.F.</span></abbr>
    [12] => <abbr title="Leraar In Opleiding"><span class="abbr" title="Leraar In Opleiding">L.I.O.</span></abbr>
    [13] => <abbr title="Leerlingvolgsysteem"><span class="abbr" title="Leerlingvolgsysteem">LVS</span></abbr>
    [14] => <abbr title="Middelbaar Beroeps Onderwijs"><span class="abbr" title="Middelbaar Beroeps Onderwijs">M.B.O.</span></abbr>
 
    [15] => <abbr title="Middelbaar Dienstverlenend en Gezondheidsverzorgend Onderwijs"><span class="abbr" title="Middelbaar Dienstverlenend en Gezondheidsverzorgend Onderwijs">M.D.G.O.</span></abbr>
    [16] => <abbr title="Medezeggenschapsraad"><span class="abbr" title="Medezeggenschapsraad">M.R.</span></abbr>
    [17] => <abbr title="Nederlandse Taal als 2e taal"><span class="abbr" title="Nederlandse Taal als 2e taal">NT2</span></abbr>
    [18] => <abbr title="Onderwijskansenplan"><span class="abbr" title="Onderwijskansenplan">O.K.P.</span></abbr>
    [19] => <abbr title="Permanente Commissie Leerlingenzorg"><span class="abbr" title="Permanente Commissie Leerlingenzorg">P.C.L.</span></abbr>
 
    [20] => <abbr title="Remedial Teacher"><span class="abbr" title="Remedial Teacher">R.T.-er</span></abbr>
    [21] => <abbr title="Speciaal Basisonderwijs"><span class="abbr" title="Speciaal Basisonderwijs">S.B.O.</span></abbr>
    [22] => <abbr title="Verkeers Educatie Basis Onderwijs"><span class="abbr" title="Verkeers Educatie Basis Onderwijs">V.E.B.O.</span></abbr>
    [23] => <abbr title="Voorbereidend Middelbaar Beroeps Onderwijs"><span class="abbr" title="Voorbereidend Middelbaar Beroeps Onderwijs">V.M.B.O.</span></abbr>
    [24] => <abbr title="Voortgezet Onderwijs"><span class="abbr" title="Voortgezet Onderwijs">V.O.</span></abbr>
 
    [25] => <abbr title="Verlengde School Dag"><span class="abbr" title="Verlengde School Dag">V.S.D.</span></abbr>
    [26] => <abbr title="Voorbereidend Wetenschappelijk Onderwijs"><span class="abbr" title="Voorbereidend Wetenschappelijk Onderwijs">V.W.O.</span></abbr>
    [27] => <abbr title="Wet Primair Onderwijs"><span class="abbr" title="Wet Primair Onderwijs">W.P.O.</span></abbr>
    [28] => <abbr title="Weer Samen Naar School"><span class="abbr" title="Weer Samen Naar School">W.S.N.S.</span></abbr>
    [29] => <abbr title="Bevordering Arbeidsparticipatie Ouderen"><span class="abbr" title="Bevordering Arbeidsparticipatie Ouderen">BAPO</span></abbr>
 
    [30] => <abbr title="Vroeg- en Voorschoolse Educatie"><span class="abbr" title="Vroeg- en Voorschoolse Educatie">VVE</span></abbr>
    [31] => <abbr title="Drie-Minuten Toets (techinsch Lezen)"><span class="abbr" title="Drie-Minuten Toets (techinsch Lezen)">DMT</span></abbr>
)
$article->text = <p><span style="text-decoration: underline;"><strong>1 Bestuur</strong></span></p>
<p>Onze school valt onder de juridische verantwoordelijkheid van de Stichting INNOVO, een stichting voor katholiek onderwijs. Het bevoegd gezag van de stichting wordt gevormd door het College van Bestuur, de heer R. Vastbinder (tot 01-11-2007) en de heer H. Frerix. Het College van Bestuur legt verantwoording af aan de Raad van Toezicht, die een controlerende taak heeft ten aanzien van de vastgestelde doelen.</p>
<p>Het College van Bestuur is gevestigd aan de Ruys de Beerenbroucklaan 29A te Heerlen. Voor vragen of informatie (over bestuurlijke aangelegenheden) kunt U contact opnemen met het stafbureau van het bestuur, dat bereikbaar is onder telefoonnummer 045-5447144. Op het stafbureau zijn deskundigen werkzaam in de disciplines financiën, administratie, huisvesting, ICT, personele, juridische en onderwijskundige zaken.</p>
<p>In totaal zorgen ongeveer 1.300 INNOVO-medewerkers dagelijks voor onderwijs aan ongeveer 12.500 leerlingen, verdeeld over 62 scholen, waaronder 57 scholen voor basisonderwijs, 2 scholen voor speciaal basisonderwijs en 3 scholen voor (voortgezet) speciaal onderwijs. Het verzorgingsgebied van INNOVO strekt zich uit over Zuid- en Midden-Limburg, verdeeld over 16 verschillende gemeenten.</p>
<p>De directeur van de school is integraal schoolleider. Dat betekent dat de directeur verantwoordelijk is voor de onderwijskundige inhoud en vormgeving van het onderwijs, de verdeling van de beschikbare middelen, de inzet en de ontwikkeling van het personeel, het beheer van het schoolgebouw en de communicatie met alle bij de school betrokken geledingen.<br />De directeuren van de scholen hebben periodiek overleg met het College van Bestuur in het zogenaamde Directeuren-Bestuurs-Overleg (DBO). Het DBO is een adviesorgaan in het bovenschoolse beleidsvormingsproces en biedt mogelijkheden voor het uitwisselen van informatie en de ontwikkeling van competenties.</p>
<p><strong>Wat wil INNOVO?</strong></p>
 
<p>De nieuwe opdracht die INNOVO vanuit de rijksoverheid heeft gekregen, sluit nauw aan bij de reeds door INNOVO ingezette koers van educatief partnerschap. Het College van Bestuur ziet in deze taak een positieve ontwikkeling. Het is een kans voor scholen om zich verder te ontwikkelen als een sterke partner voor ouders en hun kinderen. De behoeften van ouders en hun kinderen staan hierbij centraal en zullen als uitgangspunt dienen voor het verbreden van de dienstverlening richting ouders.</p>
<p>INNOVO wil kinderen en jongeren een degelijke basis bieden om een leven lang te kunnen leren, zodat zij zich zo optimaal mogelijk kunnen ontwikkelen. Vanuit deze gedachten zijn we op zoek gegaan naar een aanbod dat past bij de wensen van kinderen, ouders, scholen en INNOVO. Dit alles binnen de marge van de financiële middelen die de overheid ter beschikking stelt.</p>
<p>Om een krachtige katholieke onderwijsorganisatie te ontwikkelen en te borgen zijn leidende principes, idealen en gezamenlijke waarden onmisbaar. De volgende waarden zijn afgeleid uit onze missie en visie.</p>
<ol>
<li>Kind centraal stellen</li>
<li>Spiritualiteit</li>
<li>Subsidiariteit</li>
<li>Solidariteit</li>
<li>Vrijheid in gebondenheid</li>
 
</ol>
<p>Het hierna volgende figuur geeft de organisatiestructuur weer.</p>
<p></p>
<div style="text-align: center"><img src="/st.paulus/images/stories/Schoolgids/organigram.png" border="0" alt="" /></div>
<p></p>
<p>Onderwijs is en blijft het wonder wijzen, de leerkracht is de profes-sional, die in en bij het kind leer-kracht ontwikkelt en stimuleert.<br />Wij wensen u een goed schooljaar met veel passie, creatie en inspiratie.<br />INNOVO begint aan haar derde volledige schooljaar.</p>
<p></p>
<p style="text-align: center;"><img src="/st.paulus/images/stories/Schoolgids/jongen.gif" alt="" /></p>
<div style="text-align: center;">Onderwijs<br />het recht van ieder kind<br />hier en overal<br />het ontwikkelen van een kunstwerk,<br />een kunstwerk,<br />met een eigen gezicht, mening en verhaal,<br />op weg naar de wereld van morgen.<br /></div>
 
<p><strong>Contactgegevens bestuur:</strong></p>
<p><strong>College van Bestuur</strong><br />drs. R.C.M. (Rob) Vastbinder, voorzitter (tot 01-11-2007)<br />H.J.M. (Hay) Freriks MES, lid<br /><br /><strong>Postadres</strong><br />Postbus 2602<br />6401 DC  Heerlen<br /><br /><strong>Bezoekadres</strong><br />Ruys de Beerenbroucklaan 29a<br />6417 DC  Heerlen<br /><br />Tel.: 045-5447144<br />Faxnr.: 045-5447145<br />E-mail: <a href="mailto:mail@innovo.info">mail@innovo.info</a><br />Internet: <a href="http://www.innovo.info" target="_blank">www.innovo.info</a></p>
 
<p><span style="text-decoration: underline;"><strong>2 School Adviescommissie (S.A.C.). </strong></span><br /><br />De School Adviescommissie organiseert de betrokkenheid van de ouders en de samenleving op het niveau van iedere afzonderlijke school. Zij adviseert over zaken, welke de school betreffen. In het reglement van de S.A.C. zijn onderwerpen opgenomen waarover de directeur aan de S.A.C. in ieder geval advies vraagt.<br />Voor meer informatie over de schooladviescommissie (S.A.C.) kunt u contact opnemen met onze directrice.</p>

Open in new window

SOLUTION
danrwhit

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
ASKER
eagle00789

i myself was trying some stuff with preg_replace_callback, but currently without succes. I will see what i can do with these tips and come back to you...
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
ASKER CERTIFIED SOLUTION
Log in to continue reading
Log In
Sign up - Free for 7 days
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.