Preg_replace() probleem!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Oracle APEX Ontwikkelaar (3.500-6.000 euro)

Bedrijfsomschrijving Ben jij een getalenteerde Oracle APEX ontwikkelaar met minimaal één jaar ervaring in het ontwikkelen van Oracle APEX-applicaties? Ben je gepassioneerd over het ontwikkelen van bedrijfskritische oplossingen en wil je werken bij een toonaangevend consultancybedrijf? Dan zijn wij op zoek naar jou! Deze organisatie beschikt over zowel inhouse als externe projecten, maar bovenal over een sterk team en netwerk van opdrachten waardoor jij jezelf verder kunt ontwikkelen. Het team bestaat uit een aantal junior en medior developers, maar vooral uit senioren. De business unit managers binnen het team zijn mensen die hun vak verstaan en zelf als Oracle APEX

Bekijk vacature »

Fullstack Software Developer

Functieomschrijving Voor een ambitieuze werkgever in regio Roosendaal zijn wij op zoek naar een Full Stack C#.NET Developer. Als software programmeur ben je verantwoordelijk voor het bouwen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Verder ontwikkelen en onderhouden van webapplicaties, dashboards en apps voor de eigen IOT-oplossingen; Testen en goedkeuren van de software; Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks,

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Android developer

De functie Schiphol is een plek om te reizen, te verblijven en te werken. Door middel van data en technologie richten we op al deze gebieden het leef- en werkklimaat optimaal in en zorgen we voor een slimmere en efficiëntere operatie. Wij ontwikkelen nieuwe producten en diensten vanuit de wensen en behoeften van onze klanten, voorspellen passagier flows en testen digitale oplossingen om rijen en andere pijnpunten in het proces te verminderen. Met slimme feedback van sensortechnologie maken we zelfs data van toiletten en stoelen inzichtelijk en bruikbaar. Het Commercial Platform bestaat uit multidisciplinaire teams met een end-2-end verantwoordelijkheid voor

Bekijk vacature »

Senior Java Developer

Als Senior Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde Java professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze top-opdrachtgevers. Geen werkdag is hetzelfde! Je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfs kritische systemen voor onze klanten in regio Noordoost zoals DUO, ING, CJIB en Tendernet. Natuurlijk krijg jij de mogelijkheid je verder te certificeren in dit vakgebied. We organiseren regelmatig technische Meetups en doen veel aan kennisdeling. Sogetisten hebben plezier in hun werk en

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

PHP developer

Functie omschrijving Voor een klein bedrijf in de buurt van Nieuwegein zijn wij per direct op zoek naar een talentvolle PHP developer. Er wordt veel ruimte geboden voor eigen initiateven, waardoor je een mooie stempel kan drukken op jouw eigen werkzaamheden (zowel operationeel als strategisch). Het bedrijf heeft middels externe programmeurs een multimedia platform ontwikkeld, maar willen geleidelijk de ontwikkeling naar binnen halen. Om die reden zoeken zij een communicatieve interne PHP developer die graag meebouwt aan het succesvolle product. Je gaat de volgende werkzaamheden verrichten: Platform beheren en programmeren (PHP, MySQL, JQuery, Javascript, XML & HTML); Communicatie en aansturing

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

SQL database developer

Functie omschrijving Voor een softwarebedrijf gespecialiseerd in het ontwikkelen van logistieke software in omgeving Tilburg zijn wij op zoek naar een ervaren SQL database developer. Je gaat werken aan uitdagende, complexe projecten. Iedere klant/project betekent maatwerk in de database. Jouw werkzaamheden zullen er als volgt uit zien: Je bent verantwoordelijk voor de gehele ontwikkelstraat. Van architectuur tot ontwikkeling Je gaat je bezig houden met het ontwerpen en ontwikkelen van MS SQL server databases. Je gebruikt hiervoor T-SQL als programmeer laag. Je begeleidt als lead developer de projecten bij klanten van A – Z. Je sluit aan bij meetings met klanten,

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van hoogwaardige

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

10/09/2010 17:53:13
Quote Anchor link
Hey PHP'ers,
Ik heb een heel raar probleem, de block gedeelte willen niet vervangen worden!
ik ben al 2 dagen mee bezig geweest!
willen jullie helpen?
Voorbeeld: http://lexoft.nl/tpl/test2/

Snippet Code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
  public function getContentInBlock($blockname) {
    $regex = "/\[begin-block: ".$blockname."\](.+?)\[end-block: ".$blockname."\]/";
    return preg_replace($regex,"\\3",unserialize($this->code));
  }


  public function replaceBlock($blockname,$output,$code) {
    $regex = "/\[begin-block: ".$blockname."\](.+?)\[end-block: ".$blockname."\]/";
    return preg_replace($regex,$output,$code);
  }

?>

Groetjes Alex
 
PHP hulp

PHP hulp

05/11/2024 07:58:49
 
Marco van Oort

Marco van Oort

10/09/2010 17:59:18
Quote Anchor link
Ik weet niet of het effect heeft, maar je zou kunnen letten op de volgende dingen:

- het teken '-' heeft in een character class een speciale betekenis, misschien ook daarbuiten? misschien denkt de regex wel "iets tussen 'n' en 'b'" bij begin-block. Dan zou je deze moeten escapen: \-
- bestaat $blockname alleen uit letters? zo nee, dan moet je hem escapen met preg_quote()
Gewijzigd op 10/09/2010 17:59:49 door Marco van Oort
 

10/09/2010 18:37:27
Quote Anchor link
alleen uit letters
Ik heb het veranderd, er gebeurd niks

Toevoeging op 10/09/2010 20:08:52:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
class templateParser {
  /* @desc   In deze variabele wordt de hele file tijdelijk opgeslagen */
  public $code;
  /*  @desc   In deze variabele wordt alle data opgeslagen die te maken heeft met het vervangen van html
  Blocks:
  $_replacedata['block']['<naamvanblock>']['contentblock']; Hierin wordt opgeslagen wat tussen de [begin-block: <naamvanblock>] en [end-block: <naamvanblock>] staat.
  $_replacedata['block']['<naamvanblock>'][<oplopend nummer>]['var']; hierin wordt de data opgeslagen.
  Files:
  $_replacedata['include'][] = <naamvanbestand>; hierin wordt de naam van de bestanden opgeslagen.
  Vars:
  $_replacedata['var']['<varnaam>']; Hierin worden de vars opgeslagen
  */

  public $_replacedata;

  public function loadTemplate($tFile) {
    if(file_exists($tFile)) {
      $this->code = serialize(file_get_contents($tFile));    
    }
else {
      echo 'Couldn\'t load the template file.';
    }
  }


  public function assignBlock($blockname,$array_met_values) {
    $block_content = $this->getContentInBlock($blockname);
    $this->_replacedata['block'][$blockname] = $array_met_values;
    $this->_replacedata['block'][$blockname]['contentblock'] = $block_content;
  }

        
  public function assignVar($var,$value) {
    $this->_replacedata['var'][$var] = $value;
  }

    
  public function assignVars($vars,$replacements) {
    if(!is_array($vars) || !is_array($replacements)) {
      $this->assignVar($vars,$replacements);
    }
else {
      for($i=0; $i < count($vars); $i++) {
        $this->_replacedata['var'][$vars[$i]] = $replacements[$i];
      }
    }
  }


  public function assignIncludeContent($filename) {
    if(file_exists($filename)) {
      $this->_replacedata['include'][] = $filename;
    }
  }


  public function getContentInBlock($blockname) {
    $regex = "/\[begin-block: ".$blockname."\](.+?)\[end-block: ".$blockname."\]/";
    return preg_replace($regex,"\\3",unserialize($this->code));
  }


  public function replaceBlock($blockname,$output,$code) {
    $regex = "/\[begin-block: ".$blockname."\](.+?)\[end-block: ".$blockname."\]/";
    return preg_replace($regex,$output,$code);
  }



 function
parse() {
    $code = unserialize($this->code);
    //de blocks verwerken
    if(is_array($this->_replacedata['block'])) {
      foreach($this->_replacedata['block'] as $blockname => $values) {
        $contentblock = $values['contentblock'];
        $block_output = '';
        for($i = 0; $i < (count($values) - 1);$i++) {
          $rij = $contentblock;
          foreach($values[$i] as $var => $replacement) {
            $rij = str_replace('{'.$var.'}',$replacement,$rij);
          }

          $block_output .= $rij;
        }

        $code = $this->replaceBlock($blockname,$block_output,$code);
      }
    }

    //de vars verwerken
    if(is_array($this->_replacedata['var'])) {
      foreach($this->_replacedata['var'] as $key => $value) {
        $code = str_replace('{'.$key.'}',$value,$code);
      }
    }

    if(is_array($this->_replacedata['include'])) {
      foreach($this->_replacedata['include'] as $file) {
        $contents_file = file_get_contents($file);
        $regex = "/\[file: ".$file."\]/";
        $code = preg_replace($regex,$contents_file,$code);
      }
    }

    if($display) {
      echo $code;
    }
else {
      return $code;
    }
  }
}

?>
Gewijzigd op 10/09/2010 18:38:50 door
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.