Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

320
Views
How to get HTML tags ( Nested/ Non Nested) texts using regex?

I am trying to get all the texts not any attributes from HTML tags from a webpage using a search term and then trying to replace them with some other text. My regular expression $pattern1 = "/>([^<]*)</g" for this which gets the text from the tags. Though it isn't working here but it works here https://regex101.com/r/bExomf/2

Even if it works, I am having a problem integrating it with the search term like $pattern variable.

Here below is the code:

<?php
    $file = 'j2-regex.html';
    $searchfor = 'J2';

    // the following line prevents the browser from parsing this as HTML.
    header('Content-Type: text/plain');

    // get the file contents, assuming the file to be readable (and exist)
    $contents = file_get_contents($file);
    // escape special characters in the query
    $pattern = preg_quote($searchfor, '/');
    // finalise the regular expression, matching the whole line
    $pattern = "/^.*$pattern.*\$/m";
    $pattern1 = ">[^<]*</g";
    // search, and store all matching occurences in $matches
    if(preg_match_all($pattern, $contents, $matches)){
        echo "Found matches:\n";
        
        echo implode("\n", $matches[0]);
        
        
        // Old string
        $str_old = $searchfor;
        
        // New string
        $str_new = "J<sup>2</sup>";
        
        // Replacing part of string
        $final_str = str_ireplace($str_old,$str_new,$contents);
        
        echo("Modified String : ");
        echo($final_str);

    }
    else{
        echo "No matches found";
    }

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Maybe this helps a bit, if you really have to use regex.

<?php
    $file = 'j2-regex.html';
    $searchfor = 'J2';
    $str_new = "J<sup>2</sup>";
    $regex = "/<.*?>(*SKIP)(*FAIL)|" . $searchfor . "/";

    // the following line prevents the browser from parsing this as HTML.
    header('Content-Type: text/plain');

    // get the file contents, assuming the file to be readable (and exist)
    $contents = file_get_contents($file);
    $final_str = preg_replace($regex, $str_new, $contents);
        
    echo("Modified String : ");
    echo($final_str);
about 4 years ago · Juan Pablo Isaza Report

0

This is the working code:

<?php
    $file = '../j2-regex.html';
    $searchfor  = $_POST['searchTerm'];
    $replaceTerm  = $_POST['replaceTerm'];


    $regex = "~<.*?>(*SKIP)(*FAIL)|" . $searchfor . "~";

    // the following line prevents the browser from parsing this as HTML.
    header('Content-Type: text/plain');

    // get the file contents, assuming the file to be readable (and exist)
    $contents = file_get_contents($file);


    if(preg_match_all($regex, $contents)){

        echo $msg = "Matches Founded & File Replaced <a class='btn btn-success' target='_blank' href='j2-regex.html' style='float: right;bottom: 9px;position: relative;'>Visit Webpage</a>";

        
        // // Replacing part of string
        $final_str = preg_replace($regex, $replaceTerm, $contents);
        
        // echo("Modified String : ");
        // echo($final_str);

        $myfile = fopen("../j2-regex.html", "w") or die("Unable to open file!");

        fwrite($myfile, $final_str);
        fclose($myfile);

        // file_put_contents($file , $final_str, FILE_APPEND | LOCK_EX);

    }
    else{
        
        echo $msg = "No Matches Founded <a class='btn btn-success' target='_blank' href='j2-regex.html' style='float: right;bottom: 9px;position: relative;'>Visit Webpage</a>";


    }

?>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!