1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Expressoes regulares + PHP - Texto de um link

Discussão em 'Web Development' iniciada por lsharkf, 27 de Agosto de 2008. (Respostas: 3; Visualizações: 555)

  1. lsharkf

    lsharkf Power Member

    Pergunta noob... mas pronto.

    Tenho um texto do tipo

    <a href="/results?search_query=Laurent&amp;search=tag" class="hLink">Laurent</a>&nbsp;
    <a href="/results?search_query=Wolf&amp;search=tag" class="hLink">Wolf</a>&nbsp;
    <a href="/results?search_query=No&amp;search=tag" class="hLink">No</a>&nbsp;
    <a href="/results?search_query=Stress&amp;search=tag" class="hLink">Stress</a>&nbsp;

    Entao quero ir buscar todos os textos que estao entre a tag A ( ou seja ... Laurent, Wolf, No, Stress ) e colocar cada um numa posição de vector.

    Julgo que é para usar a funcao preg_match_all ...

    Como sou um noob em expressoes regulares... alguem que ma possa dizer ?

    Obrigado
     
  2. lsharkf

    lsharkf Power Member

    Usei esta...

    Aparentemente deu o resultado pretendido apesar de ter criado 3 vectores ... onde 2 deles sao lixo lol
    Array
    (
    [0] => Array
    (
    [0] => ">Laurent
    [1] => ">Wolf
    [2] => ">No
    [3] => ">Stress
    )

    [1] => Array
    (
    [0] => Laurent
    [1] => Wolf
    [2] => No
    [3] => Stress
    )

    [2] => Array
    (
    [0] =>
    [1] =>
    [2] =>
    [3] =>
    )
    )
     
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Eu usei uma muito semelhante :x

    preg_match_all('/>(.*)<\/a>/',$text,$array);

    Que também me deu algo parecido

    Código:
    Array
    (
        [0] => Array
            (
                [0] => >Laurent
                [1] => >Wolf
                [2] => >No
                [3] => >Stress
            )
    
        [1] => Array
            (
                [0] => Laurent
                [1] => Wolf
                [2] => No
                [3] => Stress
            )
    
    
    )
    edit - e outra: preg_match_all('/<.*?>(.*)<\/a>/',$text,$array);
    Código:
    Array
    (
        [0] => Array
            (
                [0] => Laurent
                [1] => Wolf
                [2] => No[U][/U][URL="http://localhost/results?search_query=No&search=tag"][/URL]
                [3] => Stress[URL="http://localhost/results?search_query=Stress&search=tag"][/URL]
            )
    
        [1] => Array
            (
                [0] => Laurent
                [1] => Wolf
                [2] => No
                [3] => Stress
            )
    
    )
    Mas a primeira tem os links :x
    Isto lembra-me que tenho de estudar regexps :D
     
    Última edição: 27 de Agosto de 2008
  4. anjo2

    anjo2 Power Member

    PHP:
    preg_match_all("/<a.*\>(.*)<\/a>/",$tags$temp);
    Usei esta
     

Partilhar esta Página