Giihh 6 Denunciar post Postado Novembro 14, 2015 Olá, Sei que o titulo não é apropriado, mas é uma analogia ao que quero fazer. Estou tentando automatizar o preenchimento do atributo name dentro da tag de link <a> em todo o conteúdo, onde tiver a tag <h1> <h2> <h3> etc. Mas não sei como copiar o conteúdo da tag de titulo para dentro do atributo name. Por exemplo esta assim: <h1><a name="">Esse é o titulo</a></h1> quero que ao clicar no submit fique assim: <h1><a name="esse-e-o-titulo">Esse é o titulo</a></h1> Se eu usar o preg_match_all, nesse caso, o restante do conteudo vai sumir e ficar somente o que for da expressão regular. Basicamente o que estou tentando fazer é automatizar o preencimento da tag name. Sobre transformar em slug já sei como fazer. Outro detalhe é que pode ocorrer de ter varios h2, h3... então o name de cada um tem que estar de acordo com titulo da respectiva tag. Alguma sugestão de qual função do php posso estar usando? Agradeço ajuda Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 14, 2015 preg_match e preg_match_all servem para buscar padrões. Quando você precisa alterar ou adicionar dados a uma string, use preg_replace No seu caso, como precisa manipular o texto pra gerar a slug, vale a pena usar preg_replace_callback, pra ficar mais organizado Veja um exemplo simples: $txt = " <h1>Titulo 1</h1> <h2>Titulo 1.1</h2> <h1>Titulo 2</h1> "; $newTxt = preg_replace_callback( "/<h([1-6])>(.+?)<\/h[1-6]/i", function ($matches) { $name = strtolower(str_replace(' ', '-', $matches[2])); return sprintf("<h%d><a name=\"%s\">%s</h%d>", $matches[1], $name, $matches[2], $matches[1]); }, $txt); var_dump($newTxt); Link úteis: http://php.net/preg_replace_callback http://php.net/sprintf Compartilhar este post Link para o post Compartilhar em outros sites
Giihh 6 Denunciar post Postado Novembro 15, 2015 :D Maravilha Beraldo, exemplo pratico e super fácil de entender, juntamente com o manual sprintf que detalha os especificadores, foi transparente. Com certeza não conseguiria fazer sozinha, Deus te abençoe por toda ajuda Compartilhar este post Link para o post Compartilhar em outros sites