Preg_replace() probleem!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Fullstack of back-end PHP developer

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET developer start jij in een development team met twee ervaren software ontwikkelaars. Jouw persoonlijke ontwikkeling is voor ons erg belangrijk en jij gaat dan ook meelopen met onze Senior .NET ontwikkelaar die jou met zijn kennis en ervaring een goede begeleiding kan aanbieden. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit

Bekijk vacature »

Front-end Developer

Do you want to work with the latest technologies on the development of new systems and applications? Create elegant interfaces using VueJS for thousands of users? Get moving and strengthen Nederlandse Loterij as a Front-end Developer. Thanks to your efforts, our services are always presented in style. As a Front-end Developer you are responsible for website development and improving customer experience based on data analyze. In this way, you directly contribute to a happy, healthy and sporty Netherlands. As a Front-end Developer you score by: Writing elegant, testable components without side-effects to provide functionality to the users Website development, adding

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

Bekijk vacature »

Ontwikkelaar MS Dynamics 365 Projecten

Samengevat: Deze werkgever is de kwaliteitsdienst in de tuinbouwsector. Ben jij een ervaren ontwikkelaar? Heb jij ervaring met Ms Dynamics 365 BC? Vaste baan: Ontwikkelaar Ms Dynamics 365 BC ICT MBO 3.500 - 5.000 Ontwikkelaar Ms Dynamics 365 BC Ons bedrijf bewaakt en bevordert de kwaliteit van producten, processen en ketens in de tuinbouw. Wij kenmerken zich door openheid, ruimte voor initiatief, collegialiteit en zelfontplooiing. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Functie: Voor de vacature als Ontwikkelaar Ms Dynamics 365 BC Roelofarendsveen MBO

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 .NET developer

Functie As a Senior .NET developer you will work in our Research & development team. Our team consists of 17 colleagues! We are currently busy setting up a completely new architecture for a new product. We use VS2022 and .NET 6.0 for our new product. Your function is therefore mainly backend oriented. Since we develop measuring equipment for the chemical industry, it is also very important to develop high-quality software for its control. You are also responsible for designing, implementing and testing new features. For this position its also very important to ensure future-proof and sustainable architecture. Eisen - A

Bekijk vacature »

Senior PHP developer/ Software Architect

Functie Momenteel zijn ze op zoek naar een ervaren PHP developer die zichzelf graag bezighoudt met zaken als architectuur en de algehele verbetering van structuren en standaarden. Het is eigenlijk meer operationeel als uitvoerend omdat je bezig gaat met zaken als het verder uitrollen en verbeteren van testautomatisering, codereviews, tickets en de doorloop hiervan en architectuurkeuzes. Mocht je hiernaast ook wat DevOps kennis meenemen is dit mooi meegenomen! Vanwege het kleine team maar de wereldwijde impact die zij leveren is er veel focus op kwaliteit. In deze functie werk je aan één van hun belangrijkste applicaties. Hierin werk je nauw

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

(Lead) PHP Software Developer

Functie omschrijving Voor een klein softwarebedrijf in Breda, zijn wij op zoek naar een PHP software developer met een aantal jaar werkervaring. Je krijgt een plek in een klein team met 2 andere software developers. Wil jij graag werken met de nieuwste technieken bij een bedrijf waar jij de lead gaat nemen in de verder ontwikkeling en modernisering van een eigen software pakket? Dan ben je hier aan het juiste adres! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat aan de slag met de ontwikkeling en vernieuwing van het "in-house" ontwikkelde multimedia platform. Je neemt de lead in

Bekijk vacature »

Front-end Developer Magento 2/Wordpress

Voor het aantrekkelijk houden en steeds vernieuwen van de huidige websites en webshops en het meedenken in de marketing zijn wij per direct op zoek naar een ervaren Front-end developer met gedegen kennis van Magento 2 (webshops) en Wordpress (websites). Wat bieden wij jou Mooi salaris! Meteen op contract bij de opdrachtgever! Gezellig, Kempisch bedrijf! 35 uur per week! Auto van de zaak! Wie ben jij Van een front-end developer verwachten wij: Een afgeronde Bachelor ICT opleiding met profiel ICT & Media Design. Dat je in het bezit bent van een Magento 2 professional front-end developer certificaat; Je hebt ruime

Bekijk vacature »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

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

06/05/2024 01:50:29
 
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.