Help:Extension:ParserFunctions/nl

De extensie zorgt voor elf extra parserfuncties naast de "", die er al waren op MediaWiki. (Het kan geconfigureerd worden om extra parserfuncties voor tekstbewerking te krijgen; deze functies zijn .) Al deze functies hebben de syntaxis:

#expr
Deze functie verwerkt een mathematische expressie en geeft een berekende waarde terug. Deze functie is ook beschikbaar in met de functie.



De beschikbare operatoren worden rechts genoemd, op volgorde van bewerking. De functie van elke operator. De nauwkeurigheid en het formaat van het resultaat zal per besturingssysteem (waar de wiki op draait) verschillen, dat is ook afhankelijk van het nummerformaat van de taal van de website.

Bij booleanse algebra wordt zero omgezet naar, elke andere waarde wordt  :



Een lege expressie geeft een lege tekst terug. Ongeldige expressies geven een of meerdere foutboodschappen die verwerkt kunnen worden met de functie  :



De volgorde van operanden is van belang. Een min of plus voor een getal kan als een negatief getal of een positief getal worden gezien, het is dan geen fout in de invoer:



NB: bij het gebruik van de uitvoer van magische woorden, moet er een formaataanpassing gedaan worden om komma's te verwijderen en de nummers te vertalen. geeft, waar we 0 willen hebben, wat kan worden verkregen met. Dit is vooral van belang bij talen waar getallen worden vertaald. In het Bengaals, wordt dan ৩০,০৬১.



Afronden
Rounds, het getal wordt links afgerond op een veelvoud van 1/10 verhoogd tot een macht, waarbij de exponent gelijk is aan de afgekapte waarde van het getal rechts.

Om naar boven of naar beneden af te ronden, gebruikt u respectievelijk unaire  of.

Teksten
Expressies werken alleen met getalachtige waarden, ze kunnen geen tekenreeksen of tekens vergelijken. kan in plaats daarvan worden gebruikt.



#if
Deze functie evalueert een testreeks en bepaalt of deze leeg is of niet. Een testreeks die alleen witruimte bevat, wordt als leeg beschouwd.





Deze functie test eerst of de eerste parameter niet leeg is. Als de eerste parameter niet leeg is, geeft de functie het tweede argument weer. Als de eerste parameter leeg is of alleen witruimtetekens bevat (spaties, nieuwe regels, enz.), wordt het derde argument weergegeven.



De testreeks wordt altijd geïnterpreteerd als pure tekst, dus wiskundige uitdrukkingen worden niet geëvalueerd (zie daarvoor #ifexpr):



De laatste parameter (false) mag worden weggelatenː



De functie kan genest zijn. Om dit te doen, nest de binnenste -functie in zijn volledige vorm in plaats van een parameter van de omsluitende  -functie. Er zijn maximaal zeven niveaus van nesting mogelijk, hoewel dat afhankelijk kan zijn van de wiki of een geheugenlimiet.

U kunt ook een parameter gebruiken als de testreeks in uw -afschrift. U moet ervoor zorgen dat u de  (pijpsymbool) achter de naam van de variabele toevoegt. (Zodat als de parameter geen waarde heeft, deze wordt geëvalueerd naar een lege tekenreeks in plaats van de tekenreeks " ".)



Bekijk voor meer voorbeelden van het gebruik van deze parserfunctie.

#ifeq
Deze parserfunctie vergelijkt twee invoerreeksen, bepaalt of ze identiek zijn en retourneert een van de twee tekenreeksen op basis van het resultaat. Als er meer vergelijkingen en uitvoerreeksen nodig zijn, kunt u overwegen  te gebruiken.



Als beide tekenreeksen geldige numerieke waarden zijn, worden de tekenreeksen numeriek vergeleken:



Anders wordt de vergelijking als tekst gemaakt; Deze vergelijking is hoofdlettergevoelig:


 * →  (vergelijk met vergelijkbaar voorbeeld hierboven, zonder de aanhalingstekens)
 * →  (vergelijk met vergelijkbaar voorbeeld hierboven, waarbij   eerst een geldig nummer retourneert)
 * →  (vergelijk met vergelijkbaar voorbeeld hierboven, zonder de aanhalingstekens)
 * →  (vergelijk met vergelijkbaar voorbeeld hierboven, waarbij   eerst een geldig nummer retourneert)

Neem als praktisch voorbeeld een bestaande   met behulp van de parser om te kiezen tussen twee standaardtijden, kort en lang. Het neemt de parameter als eerste invoer om te vergelijken met de tekenreeks "short" - er is geen conventie voor de volgorde, maar het is eenvoudiger te lezen als de parameter als eerste gaat. De sjablooncode wordt gedefinieerd als:



Het volgende volgt:


 * → 20
 * → 40
 * → 40

#iferror
Deze functie neemt een invoerreeks en retourneert een van de twee resultaten; de functie evalueert  of de invoerreeks een HTML-object met   bevat, zoals gegenereerd door andere parserfuncties zoals ,   en $rel 2abs, sjabloon fouten zoals loops en recursies, en andere "failsoft" parserfouten.



Een of beide retourreeksen kunnen worden weggelaten. Als de tekenreeks  wordt weggelaten, wordt de   geretourneerd als deze niet onjuist is. Als de tekenreeks  ook wordt weggelaten, wordt een lege tekenreeks geretourneerd bij een fout :


 * → &zwnj;
 * → &zwnj;
 * → &zwnj;
 * → &zwnj;
 * → &zwnj;
 * → &zwnj;

Some errors may cause a tracking category to be added, using  will not suppress the addition of the category.

#ifexpr
Deze functie evalueert een wiskundige expressie en retourneert een van de twee tekenreeksen, afhankelijk van de booleaanse waarde van het resultaat:



De invoer  wordt precies zo geëvalueerd als voor   hierboven, waarbij dezelfde operatoren beschikbaar zijn. De uitvoer wordt vervolgens geëvalueerd als een booleaanse expressie.

Een lege invoerexpressie evalueert naar :



Zoals hierboven vermeld, evalueert nul naar  en elke niet-nulwaarde evalueert naar , dus deze functie is gelijk aan één die alleen   en   gebruikt:



behalve voor een lege of verkeerde invoerexpressie (een foutmelding wordt behandeld als een lege tekenreeks; deze is niet gelijk aan nul, dus we krijgen ).



vergelijken



Een of beide retourwaarden kunnen worden weggelaten; Er wordt geen uitvoer gegeven wanneer de juiste tak leeg is:



Boolean operators of equality or inequality operators are supported.



#ifexist
Deze functie neemt een invoerreeks, interpreteert deze als een paginatitel en retourneert een van de twee waarden, afhankelijk van het feit of de pagina al dan niet op de lokale wiki bestaat.



De functie evalueert naar  als de pagina bestaat, of deze inhoud bevat, zichtbaar leeg is (metagegevens bevat zoals categoriekoppelingen of, maar geen zichtbare inhoud), leeg is of een  is. Alleen pagina's met een rode link worden beoordeeld op, ook als de pagina bestond maar is verwijderd.



De functie evalueert naar  voor  die zijn aangepast en voor  die door de software zijn gedefinieerd.



Als een pagina een doel controleert met, wordt die pagina weergegeven in de -lijst voor de doelpagina. Dus als de code  op deze pagina is opgenomen, zal /Foo  vermelden.

Op wiki's die een gedeelde repository voor de media gebruiken, kan  worden gebruikt om te controleren of een bestand is geüpload naar de repository, maar niet naar de wiki zelf:



Als er een lokale beschrijvingspagina voor het bestand is gemaakt, is het resultaat bestaat voor al het bovenstaande.

werkt niet met interwikilinks.



ifexist limieten
$ 1 wordt beschouwd als een "dure parserfunctie"; Slechts een beperkt aantal daarvan kan op één pagina worden opgenomen (inclusief functies in getransclude sjablonen). Als deze limiet wordt overschreden, retourneren alle daaropvolgende -functies automatisch false, ongeacht of de doelpagina bestaat of niet, en wordt de pagina gecategoriseerd in Category:. De naam van de kan variëren afhankelijk van de taal van uw wiki.

Voor sommige testgevallen is het mogelijk om het ifexist effect te emuleren met css, door gebruik te maken van de selectors a.new (om links naar niet-bestaande pagina's te selecteren) of a:not(.new) (om links naar bestaande pagina's te selecteren). Bovendien, aangezien het aantal dure parserfuncties dat op een enkele pagina kan worden gebruikt, wordt beheerd door, kan men ook de limiet in LocalSettings verhogen.php.



ifexist en gewenste pagina's
Een pagina die niet bestaat en is getest op het gebruik van #ifexist, komt terecht op de Gewenste pagina's. Zie voor de reden, en een tijdelijke oplossing.

#rel2abs
Deze functie converteert een relatief bestandspad naar een absoluut bestandspad.



Binnen de -invoer is de volgende syntaxis geldig:


 * → het huidige niveau
 * → ga een niveau hoger
 * → ga een niveau lager naar de submap /foo

Als de  niet is opgegeven, wordt in plaats daarvan de volledige paginanaam van de pagina gebruikt:



Ongeldige syntaxis, zoals  of , wordt genegeerd. Aangezien er niet meer dan twee opeenvolgende volledige stops zijn toegestaan, kunnen reeksen zoals deze worden gebruikt om opeenvolgende instructies te scheiden:



Voor een vergelijkbare groep functies zie ook Bij de Magische woorden de URL-gegevens. Interne parserfuncties bevatten: 'localurl:', 'fullurl:', 'anchorencode:' enz.

#switch
Zie ook: w:Help:Switch parser function

Deze functie vergelijkt één invoerwaarde met verschillende testgevallen en retourneert een gekoppelde tekenreeks als er een overeenkomst wordt gevonden.

Voorbeelden:




 * 1) switch met gedeeltelijke transclusie-tags kan van invloed zijn op een configuratiebestand waarmee een editor die niet bekend is met sjablooncodering configureerbare elementen kan bekijken en bewerken.

Standaardwaarde
Het  wordt geretourneerd als er geen   tekenreeks overeenkomt met de  :



In deze syntaxis moet het standaardresultaat de laatste parameter zijn en mag het geen onbewerkt gelijkteken bevatten (een gelijkteken zonder ). Als dit wel het geval is, wordt het behandeld als een vergelijking en wordt er geen tekst weergegeven als er geen gevallen overeenkomen. Dat komt omdat de standaardwaarde niet is gedefinieerd (leeg is). Als er een case echter overeenkomt, wordt de bijbehorende tekenreeks geretourneerd.



Als alternatief kan het standaardresultaat expliciet worden aangegeven met een  string van " ".

Standaardresultaten die op deze manier zijn gedeclareerd, kunnen overal in de functie worden geplaatst:



Als de parameter  wordt weggelaten en er geen overeenkomst wordt gemaakt, wordt er geen   geretourneerd:





Resultaten groeperen
Het is mogelijk om 'doorval'-waarden te hebben, waarbij meerdere  tekenreeksen dezelfde   tekenreeks retourneren. Dit minimaliseert dubbel werk.

Hier wordt bij 2, 3 en 4 allemaal  terug; Bij 6 en 7 is het resultaat. De " " in de laatste parameter kan in het bovenstaande geval worden weggelaten.



Met gebruik van parameters
De functie kan worden gebruikt met parameters als testreeks. In dit geval is het niet nodig om de 'pipe' achter de parameternaam te plaatsen, omdat het zeer onwaarschijnlijk is dat u ervoor kiest om iets in te stellen voor de tekenreeks " ". (Dit is de waarde die de parameter standaard heeft als de 'pipe' afwezig is en de parameter niet bestaat of een waarde heeft. Zie .)



In het bovenstaande geval, als  gelijk is aan , retourneert de functie. Als het gelijk is aan, retourneert de functie. Als de parameter leeg is of niet bestaat, retourneert de functie.

Net als in het bovenstaande gedeelte kunnen gevallen worden gecombineerd om één resultaat te geven.



Hier, als  gelijk is aan ,   of  , retourneert de functie. Als het gelijk is aan, retourneert de functie. Als de parameter leeg is of niet bestaat, retourneert de functie.

Bovendien kan het standaardresultaat worden weggelaten als u niets wilt retourneren als de waarde van de testparameter niet overeenkomt met een van de gevallen.



In dit geval retourneert de functie een lege tekenreeks, tenzij  bestaat en gelijk is aan   of , in welk geval het respectievelijk   of   retourneert.

Dit heeft hetzelfde effect als het standaardresultaat als leeg verklaren.



Als u om de een of andere reden besluit een case in te stellen als " ", retourneert de functie het resultaat van die case wanneer de parameter niet bestaat of geen waarde heeft. De parameter moet bestaan en een andere waarde hebben dan de tekenreeks " " om het standaardresultaat van de functie te retourneren.


 * (wanneer  niet bestaat of leeg is):
 * →  Foo 
 * (wanneer  de waarde "  →  Bar 
 * (wanneer  de waarde " " heeft):
 * →  Foo 

In dit hypothetische geval zou u de 'pipe' aan de parameter moeten toevoegen.



Vergelijking gedrag
Net als bij  wordt de vergelijking numeriek gemaakt als zowel de vergelijkingsreeks als de string die wordt getest numeriek zijn; of als een hoofdlettergevoelige tekenreeks:





Een  string kan leeg zijn:



Zodra een match is gevonden, worden volgende  genegeerd:





Ruwe gelijktekens
"Case"-tekenreeksen mogen geen onbewerkte gelijktekenstekens bevatten. Om dit te omzeilen, gebruikt u het magische woord =, u maakt een sjabloon = met een enkel gelijkteken:, of vervangt u het gelijkteken door HTML-code.

Voorbeeld:



#ifeq vervangen
kan worden gebruikt om de expansiediepte te beperken.

Bijvoorbeeld:



is gelijk aan



d.w.z. diep nestelen, lineair:

Aan de andere kant kan de vervanging van de schakelaar ingewikkeld / onpraktisch zijn voor IF's die in beide takken zijn genest (weergegeven met alternatieven voor inspringing, aan beide zijden ingesprongen), waardoor een volledige symmetrische boom ontstaat:

#time
Deze parserfunctie neemt een datum en/of tijd (in de Gregoriaanse kalender) en maakt deze op volgens de gegeven syntaxis. Er kan een datum/tijd-object worden opgegeven; de standaardwaarde is de waarde van het  magische woord, dat wil zeggen het tijdstip waarop de pagina voor het laatst in HTML is weergegeven.



De lijst met geaccepteerde opmaakcodes wordt gegeven in de tabel aan de rechterkant. Elk teken in de opmaaktekenreeks dat niet wordt herkend, wordt ongewijzigd doorgegeven. Dit geldt ook voor lege ruimtes (het systeem heeft ze niet nodig voor het interpreteren van de codes). Er zijn ook twee manieren om te ontsnappen aan tekens in de opmaakreeks:


 * 1) Een backslash gevolgd door een opmaakteken wordt geïnterpreteerd als één letterlijk teken
 * 2) Tekens tussen dubbele aanhalingstekens worden beschouwd als letterlijke tekens en de aanhalingstekens worden verwijderd.

Bovendien worden de twee tekens  geïnterpreteerd als een enkele letterlijke "x".

Naarmate de lijst met opmaakcodes blijft evolueren (met de ondersteuning van nieuwe kalenders of van nieuwe datumvelden die anders zijn berekend en opgemaakt), moet u zorgen dat alle letterlijke tekens (niet alleen ASCII-letters die momenteel worden gebruikt door opmaakcodes) ongewijzigd worden doorgegeven als het dus niet als opmaak bedoeld is.

Helaas wordt het enkele citaat van ASCII voorlopig nog steeds niet herkend als een eenvoudig alternatief voor het markeren van letterlijke tekst voor de momenteel ondersteunde dubbele ASCII-aanhalingstekens (dubbele aanhalingstekens zijn bijvoorbeeld verplicht voor andere toepassingen, zoals de afbakening van tekenreekswaarden in JSON, C, C ++...) en backslashes (die ook moeten worden ontsnapt in tekenreeksconstanten die door veel talen worden gebruikt, waaronder JSON, C, C++, PHP, JavaScript, Lua). U kunt dus nog steeds geen letterlijk dubbel citaat insluiten zonder het te markeren met een backslash (of u kunt in plaats daarvan andere krullende, hoekige of vierkante aanhalingstekens gebruiken).



Het  kan in elk formaat zijn dat door PHP's strtotime functie wordt geaccepteerd. Absolute (bijv. ), relatieve (bijv.  ) en gecombineerde tijden (bijv.  ) worden geaccepteerd.


 * &rarr; 
 * &rarr; 
 * &rarr; 
 * &rarr; 
 * &rarr; 
 * &rarr; 
 * &rarr; 

De  in ISO 639-3 (?) maakt het mogelijk om de string in de gekozen taal weer te geven



De parameter  geeft aan of het date/time object verwijst naar de lokale tijdzone of naar UTC.

Dit is een booleaanse parameter: de waarde ervan wordt bepaald door de waarde van het argument te casten (zie de officiële PHP-documentatie voor details over hoe tekenreeksen worden gegoten naar booleaanse waarden).

Zie de volgende voorbeelden voor meer informatie:





Als u een Unix-tijdstempel hebt berekend, kunt u deze gebruiken in datumberekeningen door er een symbool  voor te zetten.



Er kunnen volledige of gedeeltelijke absolute data worden opgegeven; De functie zal delen van de datum "invullen" die niet zijn opgegeven met behulp van de huidige waarden:



A four-digit number is always interpreted as a year, never as hours and minutes:



A six-digit number is interpreted as hours, minutes and seconds if possible, but otherwise as an error (not, for instance, a year and month):


 * →  Input is treated as a time rather than a year+month code.
 * →  Although 19:60:09 is not a valid time, 196009 is not interpreted as September 1960.

The function performs a certain amount of date mathematics:



The total length of the format strings of the calls of  is limited to 6000 characters.



Tijdzone probleem
There is a bug in this #time parser function (more specifically in PHP DateTime) that does not allow the passing-in of non-integers as relative time zone offsets. This issue does not apply when using an on-the-hour time zone, such as EDT. For example:


 * &rarr;

However, India is on a +5.5 hours time offset from UTC, and thus using its time zone will not normally allow the correct calculation of a relative time zone offset. Here's what happens:


 * &rarr;

To workaround this issue, simply convert the time into minutes or seconds, like this:


 * &rarr;
 * &rarr;

(Tim Starling, the developer of this function, provided the exact syntax for this solution.)

#timel
This function is identical to, when the   parameter is set to  , so it always uses the local time of the wiki (as set in ).

Syntax of the function is:





For instance, see the following examples:





#titleparts
This function separates a page title into segments based on slashes, then returns some of those segments as output.



If the number of segments to return parameter is not specified, it defaults to "0", which returns all the segments from the first segment to return (included). If the first segment to return parameter is not specified or is "0", it defaults to "1":


 * →  See also.
 * →  See also.

Negative values are accepted for both values. Negative values for the number of segments to return parameter effectively 'strips' segments from the end of the string. Negative values for the first segment to return translates to "start with this segment counting from the right":


 * →  Strips one segment from the end of the string. See also.
 * →   Strips all 4 segments from the end of the string
 * →   Strips 5 segments from the end of the string (more than exist)
 * →   Returns last segment. Zie ook.
 * →   Strips one segment from the end of the string, then returns the second segment and beyond
 * →   Start copying at the second last element; strip one segment from the end of the string

Before processing, the pagename parameter is HTML-decoded: if it contains some standard HTML character entities, they will be converted to plain characters (internally encoded with UTF-8, i.e. the same encoding as in the MediaWiki source page using this parser function).


 * For example, any occurrence of,  , or   in pagename will be replaced by.
 * No other conversion from HTML to plain text is performed, so HTML tags are left intact at this initial step even if they are invalid in page titles.

Then the decoded pagename is canonicalized into a standard page title supported by MediaWiki, as much as possible:


 * 1) All underscores are automatically replaced with spaces:
 * →  Not bah_boo, despite the underscore in the original.
 * 1) The string is split a maximum of 25 times; further slashes are ignored and the 25th element will contain the rest of the string. The string is also limited to 255 characters, as it is treated as a page title:
 * If for whatever reason you needed to push this function to its limit, although very unlikely, it is possible to bypass the 25 split limit by nesting function calls:
 * 1) Finally the first substring is capitalized according to the capitalization settings of the local wiki (if that substring also starts by a local namespace name, that namespace name is also normalized).
 * 1) Finally the first substring is capitalized according to the capitalization settings of the local wiki (if that substring also starts by a local namespace name, that namespace name is also normalized).
 * 1) Finally the first substring is capitalized according to the capitalization settings of the local wiki (if that substring also starts by a local namespace name, that namespace name is also normalized).

{{Warning|1= Certain characters that are illegal in a page title will cause #titleparts to not parse the string:


 * → {{#titleparts: {one/two} | 1 | 1 }}. Does not produce the expected: {one
 * → {{#titleparts: page/123 | 1 | 2 }}. Does not work because brackets are illegal in page titles and this parser function does not process links embedded in its input pagename parameter, even when they use the MediaWiki syntax, or any other HTML or MediaWiki tags.
 * → "{{#titleparts: red/#00FF00/blue| 1 | 3 }}". Does not work because "#" is also illegal in page titles.

}}

Tekenreeksfuncties
All of these functions are integrated from the StringFunctions extension, but are only available if an administrator sets   in.

All of these functions operate in O(n) time complexity, making them safe against DoS attacks.

#len
The #len function returns the length of the given string. De syntaxis:

The return value is always a number of characters in the source string (after expansions of template invocations, but before conversion to HTML). If no string is specified, the return value is zero.

#pos
The #pos function returns the position of a given search term within the string. The syntax is:

The offset parameter, if specified, tells a starting position where this function should begin searching.

If the search term is found, the return value is a zero-based integer of the first position within the string.

If the search term is not found, the function returns an empty string.

#rpos
The #rpos function returns the last position of a given search term within the string. De syntaxis:

If the search term is found, the return value is a zero-based integer of its last position within the string.

If the search term is not found, the function returns -1.

#sub
The #sub function returns a substring from the given string. The syntax is:

The start parameter, if positive (or zero), specifies a zero-based index of the first character to be returned.

Voorbeeld: returns.

returns.

If the start parameter is negative, it specifies how many characters from the end should be returned.

Voorbeeld: returns.

The length parameter, if present and positive, specifies the maximum length of the returned string.

Voorbeeld: returns.

If the length parameter is negative, it specifies how many characters will be omitted from the end of the string.

Voorbeeld: returns.

If the start parameter is negative, it specifies how many characters from the end should be returned. The length parameter, if present and positive, specifies the maximum length of the returned string from the starting point.

Voorbeeld: returns.

#count
The #count function returns the number of times a given substring appears within the provided text.

#replace
The #replace function returns the given string with all occurrences of a search term replaced with a replacement term.

If the search term is unspecified or empty, a single space will be searched for.

If the replacement term is unspecified or empty, all occurrences of the search term will be removed from the string.

Currently the syntax doesn't provide a switch to toggle case-sensitivity setting. But you may make use of magic words of formatting as a workaround. (e.g. ) For example, if you want to remove the word "Category:" from the string regardless of its case, you may type:
 * Case-insensitive replace :

But the disadvantage is that the output will become all lower-case. If you want to keep the casing after replacement, you have to use multiple nesting levels (i.e. multiple replace calls) to achieve the same thing.

#explode
The #explode function splits the given string into pieces and then returns one of the pieces. The syntax is:

The delimiter parameter specifies a string to be used to divide the string into pieces. This delimiter string is then not part of any piece, and when two delimiter strings are next to each other, they create an empty piece between them. If this parameter is not specified, a single space is used. The limit parameter is available in ParserFunctions only, not the standalone StringFunctions version, and allows you to limit the number of parts returned, with all remaining text included in the final part.

The position parameter specifies which piece is to be returned. Pieces are counted from 0. If this parameter is not specified, the first piece is used (piece with number 0). When a negative value is used as position, the pieces are counted from the end. In this case, piece number -1 means the last piece. Voorbeelden:


 * returns
 * returns
 * returns
 * returns

The return value is the position-th piece. If there are fewer pieces than the position specifies, an empty string is returned.

#urldecode
converts the escape characters from an 'URL encoded' string back to readable text. The syntax is:

Notes:
 * This function works by directly exposing PHP's urldecode function.
 * A character-code-reference can be found at www.w3schools.com.
 * The opposite,, has been integrated into MediaWiki as of version 1.18; for examples, see.
 * urldecode was merged from Stringfunctions in 2010, by commit 1b75afd18d3695bdb6ffbfccd0e4aec064785363

Limieten
This module defines three global settings:


 * $wgStringFunctionsLimitSearch
 * $wgStringFunctionsLimitReplace
 * $wgStringFunctionsLimitPad

These are used to limit some parameters of some functions to ensure the functions operate in O(n) time complexity, and are therefore safe against DoS attacks.

$wgStringFunctionsLimitSearch
This setting is used by #pos, #rpos, #replace, and #explode. All these functions search for a substring in a larger string while they operate, which can run in O(n*m) and therefore make the software more vulnerable to DoS attacks. By setting this value to a specific small number, the time complexity is decreased to O(n).

This setting limits the maximum allowed length of the string being searched for.

The default value is 30 multibyte characters.

$wgStringFunctionsLimitReplace
This setting is used by #replace. This function replaces all occurrences of one string for another, which can be used to quickly generate very large amounts of data, and therefore makes the software more vulnerable to DoS attacks. This setting limits the maximum allowed length of the replacing string.

The default value is 30 multibyte characters.



Vervanging
Parser functions can be substituted by prefixing the hash character with :


 * → the code   will be inserted in the wikitext since the page exists.

Substitution does not work within ; you can use &hellip;  for this purpose.

Doorverwijzingen
Especially   could be handy in  to pages including dates, but this does not work.



pipe-tekens gebruiken in tabellen
Parser functions will mangle syntax and pipe characters, treating all the raw pipe characters as parameter dividers. To avoid this, most wikis used a template    :! with its contents only a raw pipe character, since MW 1.24 a  replaced this kludge. This 'hides' the pipe from the MediaWiki parser, ensuring that it is not considered until after all the templates and variables on a page have been expanded. It will then be interpreted as a table row or column separator. Alternatively, raw HTML table syntax can be used, although this is less intuitive and more error-prone.

You can also escape the pipe character for display as a plain, uninterpreted character using an HTML entity:.



Witruimte verwijderen
Whitespace, including newlines, tabs, and spaces, is stripped from the beginning and end of all the parameters of these parser functions. If this is not desirable, comparison of strings can be done after putting them in quotation marks.



To prevent the trimming of then and else parts, see m:Template:If. Some people achieve this by using &lt; &gt;  &lt; /nowiki &gt; instead of spaces.


 * → foofoo
 * → foofoo

However, this method can be used to render a single whitespace character only, since the parser squeezes multiple whitespace characters in a row into one.




 * || → || foofoo 
 * }

In this example, the  style is used to force the whitespace to be preserved by the browser, but even with it the spaces are not shown. This happens because the spaces are stripped by the software, before being sent to the browser.

It is possible to workaround this behavior replacing whitespaces with  (breakable space) or   (non-breakable space), since they are not modified by the software:


 * →  foofoo 
 * → foofoo

Beware that not all parameters are created equal. In ParserFunctions, whitespace at the beginning and end is always stripped. In templates, whitespace at the beginning and end is stripped for named parameters and named unnamed parameters but not from unnamed parameters:


 * → foofoo
 * → foofoo
 * → foofoo



Zie ook

 * Help calculatie
 * Help nieuwe regels en spaties
 * Help vergelijking tussen ParserFunctions en Tex syntaxis
 * , an (incomplete) list of parser functions added by core and extensions.
 * Module:String maakt verouderd
 * Parser functions for Wikibase (the extensions that enables Wikidata): d:Special:MyLanguage/Wikidata:How to use data on Wikimedia projects
 * Module:String maakt verouderd
 * Parser functions for Wikibase (the extensions that enables Wikidata): d:Special:MyLanguage/Wikidata:How to use data on Wikimedia projects
 * Parser functions for Wikibase (the extensions that enables Wikidata): d:Special:MyLanguage/Wikidata:How to use data on Wikimedia projects