• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[PHP] - funkcja ignoruje potrzebny / (forward slash)

0 głosów
517 wizyt
pytanie zadane 19 stycznia 2016 w PHP przez termitek12 Użytkownik (890 p.)
$zmienna = strpos($text, '<p>');

dziala normalnie.

Ale przy '</p>' juz nie dziala - chodzi o ->/<- - mozna to jakos inaczej zapisac aby / byl widziany przez funkcje normalnie?

$zmienna = strpos($text, '</p>');

2 odpowiedzi

+1 głos
odpowiedź 19 stycznia 2016 przez KubenQPL Maniak (62,840 p.)
Zapisz to tak '<\/p>' \ neutralizuje następny znak funkcyjny czy jak to się tam nazywa.
komentarz 19 stycznia 2016 przez Comandeer Guru (607,960 p.)
Prawdopodobnie chodzi Ci o określenie "znak ucieczki" ;)
komentarz 19 stycznia 2016 przez termitek12 Użytkownik (890 p.)
ok tylko ja nie chce go zneutralizowac - tylko chce aby byl normalnie uwzgledniany.
komentarz 19 stycznia 2016 przez KubenQPL Maniak (62,840 p.)
Zrób tak i sprobuj, znak będzie tylko nie będzie interpretowany jako kod tylko jako string w tym cudzysłowiu. To są podstawy.
komentarz 19 stycznia 2016 przez termitek12 Użytkownik (890 p.)
no oczywiscie porzetestowalem przed tym komentarzem i jak pisalem nie dziala.

$zmienna = 'tekst z <div><p>I TO MA WYCIAGNAC</p> aaa <p>tekst2</p> aaa </div> aa <div> </div> tekst teks';

$p_start = strpos($text, '<p>');

$p_koniec = strpos($text, '</p>');

$paragraph = substr($zmienna, $p_start, strpos($zmienna, $p_koniec));

echo = $paragraph;

o ile dobrze sie to zaczyna od 'I TO MA WYCIAGNAC' to leci dalej i chwyta tez '</p> aaa <p>tekst2</p> aaa' a jak uzyje <div> (jako $p_koniec) to prawidlowo lapie do <div> wiec cos jest nie tak ze znakiem /
0 głosów
odpowiedź 19 stycznia 2016 przez Comandeer Guru (607,960 p.)

Są co najmniej 3 lepsze rozwiązania tego zadania (w kolejności od najlepszego):

  • XPath
    <?php
    $zmienna = 'tekst z <div><p>I TO MA WYCIAGNAC</p> aaa <p>tekst2</p> aaa </div> aa <div> </div> tekst teks';
    $dom = new DOMDocument();
    $dom->loadHTML( $zmienna );
    $xpath = new DOMXPath( $dom );
    
    var_dump( $xpath->query('*/div/p[1]')[ 0 ]->nodeValue );
  • DOM
    <?php
    $zmienna = 'tekst z <div><p>I TO MA WYCIAGNAC</p> aaa <p>tekst2</p> aaa </div> aa <div> </div> tekst teks';
    $dom = new DOMDocument();
    $dom->loadHTML( $zmienna );
    
    var_dump( $dom->getElementsByTagName( 'div' )[ 0 ]->getElementsByTagName( 'p' )[ 0 ]->nodeValue );
    
  • PCRE (wyrażenia regularne)
    <?php
    $zmienna = 'tekst z <div><p>I TO MA WYCIAGNAC</p> aaa <p>tekst2</p> aaa </div> aa <div> </div> tekst teks';
    $wynik;
    preg_match( '/<p>(.*?)<\/p>/i', $zmienna, $wynik );
    
    var_dump( $wynik[ 1 ] );
    

Podobne pytania

0 głosów
1 odpowiedź 366 wizyt
0 głosów
0 odpowiedzi 419 wizyt
pytanie zadane 24 maja 2022 w C i C++ przez RufinB Bywalec (2,020 p.)
0 głosów
0 odpowiedzi 729 wizyt
pytanie zadane 30 stycznia 2018 w Ogłoszenia, zlecenia przez kiubax1 Nowicjusz (120 p.)

93,731 zapytań

142,669 odpowiedzi

323,286 komentarzy

63,291 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...