HEX
Server: nginx/1.18.0
System: Linux vps-9dcdb12e 5.15.0-176-generic #186-Ubuntu SMP Fri Mar 13 11:01:42 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.24
Disabled: exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Upload Files
File: //usr/share/doc/libhtml-parser-perl/examples/htext
#!/usr/bin/perl

# Extract all plain text from an HTML file

use strict;
use warnings;
use Encode ();
use HTML::Parser ();

my %inside;

sub tag {
    my ($tag, $num) = @_;
    $inside{$tag} += $num;
    print " ";    # not for all tags
}

sub text {
    return if $inside{script} || $inside{style};
    print encode('utf8', $_[0]);
}

HTML::Parser->new(
    api_version => 3,
    handlers    => [
        start => [\&tag,  "tagname, '+1'"],
        end   => [\&tag,  "tagname, '-1'"],
        text  => [\&text, "dtext"],
    ],
    marked_sections => 1,
)->parse_file(shift)
    || die "Can't open file: $!\n";