3v4l.org

run code in 300+ PHP versions simultaneously
<?php $text = <<<TEXT <div> L’usine de Pessac, en Gironde, produit chaque jour environ 5 millions de pièces de monnaie. Leur fabrication repose sur des processus industriels extrêmement exigeants et de nombreuses manipulations. Des contrôles qualité sont effectuées à toutes les étapes. Celles-ci nécessitent des savoir-faire parfois multi-séculaires, mais aussi des techniques de pointe. La gravure intervient ensuite pour concevoir et réaliser coins et poinçons. Ces matrices de frappe sont des blocs d’acier qui fonctionnent par paire, de manière à graver simultanément l’avers et le revers d’une monnaie. Ainsi, les effigies, inscriptions et éléments décoratifs d'une monnaie sont gravés en creux et à l’envers sur le coin, en relief et à l’endroit sur le poinçon. <a href="">monnaie</a> est plus encore! Les pièces fabriquées à Pessac sont mono-colores ou bi-colores : par un procédé breveté, la <a class="esk-seo-plu-link" href="https://abc.quaidesbalises.com/tags/monnaie-de-paris">Monnaie de Paris</a> peut assembler une couronne et un coeur au moment même de la frappe de la pièce. A noter que certaines monnaies de collection bénéficient d’une finition spéciale appelée « brillant universel ». Frappées avec un outillage neuf, ces pièces ont un aspect brillant et sont dépourvues de traces de dégradation, puisqu'elle n'ont jamais circulé. MONNAIE DE PARIS: <a class="esk-seo-plu-link" href="https://abc.quaidesbalises.com/tags/-de-paris">MONNAIE DE PARIS</a> : c'est top </div> TEXT; $pattern = '/\b' . preg_quote('monnaie', '/') . '\b/iu'; $dom = new DOMDocument; $dom->loadHTML($text, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($dom); foreach ($xpath->query("//*[not(ancestor-or-self::a)]/text()") as $node) { $node->nodeValue = preg_replace($pattern, "**$0**", $node->nodeValue); } echo utf8_decode($dom->saveHTML($dom->documentElement));
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 33
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 33
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 33
filename:       /in/9XTdc
function name:  (null)
number of ops:  44
compiled vars:  !0 = $text, !1 = $pattern, !2 = $dom, !3 = $xpath, !4 = $node
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Cdiv%3E%0AL%E2%80%99usine+de+Pessac%2C+en+Gironde%2C+produit+chaque+jour+environ+5+millions+de+pi%C3%A8ces+de+monnaie.+Leur+fabrication+repose+sur+des+processus+industriels+extr%C3%AAmement+exigeants+et+de+nombreuses+manipulations.+Des+contr%C3%B4les+qualit%C3%A9+sont+effectu%C3%A9es+%C3%A0+toutes+les+%C3%A9tapes.+Celles-ci+n%C3%A9cessitent+des+savoir-faire+parfois+multi-s%C3%A9culaires%2C+mais+aussi+des+techniques+de+pointe.%0A%0ALa+gravure+intervient+ensuite+pour+concevoir+et+r%C3%A9aliser+coins+et+poin%C3%A7ons.+Ces+matrices+de+frappe+sont+des+blocs+d%E2%80%99acier+qui+fonctionnent+par+paire%2C+de+mani%C3%A8re+%C3%A0+graver+simultan%C3%A9ment+l%E2%80%99avers+et+le+revers+d%E2%80%99une+monnaie.+Ainsi%2C+les+effigies%2C+inscriptions+et+%C3%A9l%C3%A9ments+d%C3%A9coratifs+d%27une+monnaie+sont+grav%C3%A9s+en+creux+et+%C3%A0+l%E2%80%99envers+sur+le+coin%2C+en+relief+et+%C3%A0+l%E2%80%99endroit+sur+le+poin%C3%A7on.%0A%0A%3Ca+href%3D%22%22%3Emonnaie%3C%2Fa%3E+est+plus+encore%21%0A%0ALes+pi%C3%A8ces+fabriqu%C3%A9es+%C3%A0+Pessac+sont+mono-colores+ou+bi-colores+%3A+par+un+proc%C3%A9d%C3%A9+brevet%C3%A9%2C+la+%3Ca+class%3D%22esk-seo-plu-link%22+href%3D%22https%3A%2F%2Fabc.quaidesbalises.com%2Ftags%2Fmonnaie-de-paris%22%3EMonnaie+de+Paris%3C%2Fa%3E+peut+assembler+une+couronne+et+un+coeur+au+moment+m%C3%AAme+de+la+frappe+de+la+pi%C3%A8ce.+A+noter+que+certaines+monnaies+de+collection+b%C3%A9n%C3%A9ficient+d%E2%80%99une+finition+sp%C3%A9ciale+appel%C3%A9e+%C2%AB+brillant+universel+%C2%BB.+Frapp%C3%A9es+avec+un+outillage+neuf%2C+ces+pi%C3%A8ces+ont+un+aspect+brillant+et+sont+d%C3%A9pourvues+de+traces+de+d%C3%A9gradation%2C+puisqu%27elle+n%27ont+jamais+circul%C3%A9.%0A%0AMONNAIE+DE+PARIS%3A+%3Ca+class%3D%22esk-seo-plu-link%22+href%3D%22https%3A%2F%2Fabc.quaidesbalises.com%2Ftags%2F-de-paris%22%3EMONNAIE+DE+PARIS%3C%2Fa%3E+%3A+c%27est+top%0A%3C%2Fdiv%3E'
   17     1        INIT_FCALL                                               'preg_quote'
          2        SEND_VAL                                                 'monnaie'
          3        SEND_VAL                                                 '%2F'
          4        DO_ICALL                                         $6      
          5        CONCAT                                           ~7      '%2F%5Cb', $6
          6        CONCAT                                           ~8      ~7, '%5Cb%2Fiu'
          7        ASSIGN                                                   !1, ~8
   19     8        NEW                                              $10     'DOMDocument'
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $10
   20    11        INIT_METHOD_CALL                                         !2, 'loadHTML'
         12        SEND_VAR_EX                                              !0
         13        SEND_VAL_EX                                              8196
         14        DO_FCALL                                      0          
   21    15        NEW                                              $14     'DOMXPath'
         16        SEND_VAR_EX                                              !2
         17        DO_FCALL                                      0          
         18        ASSIGN                                                   !3, $14
   22    19        INIT_METHOD_CALL                                         !3, 'query'
         20        SEND_VAL_EX                                              '%2F%2F%2A%5Bnot%28ancestor-or-self%3A%3Aa%29%5D%2Ftext%28%29'
         21        DO_FCALL                                      0  $17     
         22      > FE_RESET_R                                       $18     $17, ->33
         23    > > FE_FETCH_R                                               $18, !4, ->33
   23    24    >   INIT_FCALL                                               'preg_replace'
         25        SEND_VAR                                                 !1
         26        SEND_VAL                                                 '%2A%2A%240%2A%2A'
         27        FETCH_OBJ_R                                      ~20     !4, 'nodeValue'
         28        SEND_VAL                                                 ~20
         29        DO_ICALL                                         $21     
         30        ASSIGN_OBJ                                               !4, 'nodeValue'
         31        OP_DATA                                                  $21
   22    32      > JMP                                                      ->23
         33    >   FE_FREE                                                  $18
   25    34        INIT_FCALL                                               'utf8_decode'
         35        INIT_METHOD_CALL                                         !2, 'saveHTML'
         36        CHECK_FUNC_ARG                                           
         37        FETCH_OBJ_FUNC_ARG                               $22     !2, 'documentElement'
         38        SEND_FUNC_ARG                                            $22
         39        DO_FCALL                                      0  $23     
         40        SEND_VAR                                                 $23
         41        DO_FCALL_BY_NAME                                         
         42        ECHO                                                     $24
         43      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
138.07 ms | 1005 KiB | 16 Q