Je ne comprends pas pourquoi ce code ne transforme pas le titre en lien correct
P粉715228019
P粉715228019 2023-09-11 23:44:46
0
1
570

J'ai la chaîne suivante dans ma base de données :

"Minecraft is a sandbox video game developed by Mojang Studios from Sweden. Its concept revolve around procedurally generated world made of cubic blocks.

Minecraft is the best-selling game in history, having over 238 millions of copies sold.

<h1>Gameplay</h1>

Minecraft is played from first-person perspective. Gameplay includes mining, crafting, combat, building and terraforming. Usually when a new single-player game is started, a player is placed into a procedurally generated world. The player can encounter various "mobs"...

J'essaie d'extraire la valeur du titre d'une chaîne et de la convertir en lien en utilisant le code suivant

$heading='';
    $match1=array();
    $matched=preg_match("/<h\d>/",$part,$match1,PREG_OFFSET_CAPTURE);
    if($matched)
    {
        $match2=array();

        preg_match("#</h\d>#",$part,$match2,PREG_OFFSET_CAPTURE);
        $heading= substr($part,$match1[0][1]+4,$match2[0][1]);
        $heading="<a href='$heading'>$heading</a>";
    }

Je m'attendais à ce que la variable "titre" soit ,但结果是

P粉715228019
P粉715228019

répondre à tous(1)
P粉776412597

Basé sur le commentaire de @theforthbird - vous pouvez utiliser une seule expression régulière pour capturer la chaîne souhaitée, bien que l'analyse du HTML avec l'expression régulière en général puisse causer beaucoup de problèmes, même si cela peut convenir à vos objectifs actuels, si vous avez plus à faire ces lignes, il vaut mieux analyser le HTML dans le DOM et extraire ce dont vous avez besoin.

$heading = '';
preg_match('/<h(\d)>(.*?)<\/h>/', $string, $matches);

// print_r($matches); # uncomment this to see everything that was 'matched' by this regex

if (!empty($matches[2])) {
    $heading = "<a href='{$matches[2]}'></a>";
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal