Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pretraga stringa ?

[es] :: PHP :: Pretraga stringa ?

[ Pregleda: 3260 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

deki_bg

Član broj: 3334
Poruke: 244
*.dynamic.sbb.co.yu.



Profil

icon Pretraga stringa ?26.05.2007. u 09:39 - pre 205 meseci
Treba mi pomoc, nisam nikad ovo radio.
Treba u jednom html fajlu da pronadjem $text koji se nalazi izmedju odredjenih html elemenata.
Npr:

<div id="blabla"><b>TEXT</b></div>

Sad kako da mu kazem da mi nadje sta se nalazi izmedju "<div id="blabla"><b>" i "</b></div>"


Hvala puno.
 
Odgovor na temu

hatebreeder
Sinisa Bobic
Belgrade

Član broj: 48145
Poruke: 192
*.cpe.vektor.net.

Jabber: sinisabobic@gmail.com
ICQ: 339407553
Sajt: www.sinisabobic.com


Profil

icon Re: Pretraga stringa ?26.05.2007. u 14:00 - pre 205 meseci
Nadam se da ce ti koristiti moje resenje

Code:

function str_izmedju($adresa, $prvi, $drugi){

  $p = strpos($adresa, $prvi);
  $s = strpos($adresa, $drugi);

  $p = strlen($prvi)+$p;
  $s -= 1;

  $text = "";
  for ($i = $p; $i <= $s; $i++) $text.=$adresa{$i};

  return $text;
}
 
Odgovor na temu

hatebreeder
Sinisa Bobic
Belgrade

Član broj: 48145
Poruke: 192
*.cpe.vektor.net.

Jabber: sinisabobic@gmail.com
ICQ: 339407553
Sajt: www.sinisabobic.com


Profil

icon Re: Pretraga stringa ?26.05.2007. u 14:04 - pre 205 meseci
U medjuvremenu se setih da moze to i bolje

Code:

function str_izmedju($adresa, $prvi, $drugi){

  $p = strpos($adresa, $prvi);
  $s = strpos($adresa, $drugi);

  return substr($adresa, $p+strlen($prvi),$s-($p+strlen($prvi)));
}


Nisam hteo da brisem predhodni post jer mozda nekom pocetniku dobro dodje ideja za nesto slicno
 
Odgovor na temu

deki_bg

Član broj: 3334
Poruke: 244
*.dynamic.sbb.co.yu.



Profil

icon Re: Pretraga stringa ?26.05.2007. u 14:31 - pre 205 meseci
hm. ne radi bas kad se pretrazuje ceo html. radi za neke manje stringove.
stvarno ne znam u cemu je problem.
 
Odgovor na temu

DVSoftware
Dejan Velimirovic
Beograd

Član broj: 18721
Poruke: 43
*.sks1.muni.cz.

Sajt: www.talesofthelostsouls.c..


Profil

icon Re: Pretraga stringa ?26.05.2007. u 15:35 - pre 205 meseci
preg_match_all("#".$prvi."(.*?)".$drugi."#s", $text, $value);

nisam testirao ali bi trebalo da radi
$value je array u kome se nalaze sledetji podaci:
$value[0][] je tekst zajedno sa uslovom, a $value[1][] je bez uslova, dakle samo pronadjen tekst
mozhe biti i vishe rezultata
$value[1][0], $value[1][1]...
 
Odgovor na temu

hatebreeder
Sinisa Bobic
Belgrade

Član broj: 48145
Poruke: 192
*.cpe.vektor.net.

Jabber: sinisabobic@gmail.com
ICQ: 339407553
Sajt: www.sinisabobic.com


Profil

icon Re: Pretraga stringa ?27.05.2007. u 00:18 - pre 205 meseci
Citat:
deki_bg: hm. ne radi bas kad se pretrazuje ceo html. radi za neke manje stringove.
stvarno ne znam u cemu je problem.


Ja sam ga testirao sa gomilom primera i radio je... Ne bih znao u cemu je problem
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
89.216.201.*



+2 Profil

icon Re: Pretraga stringa ?27.05.2007. u 01:54 - pre 205 meseci
evo ja sam nedavno se igrao na tu temo i pravio jedan prost parser pa vidi jel ti odgovar ti ga naravno modifikuj za svoju upotrebu
Naravno vazno je da znas sta skidas i sta ti treba da parsujes. Tacnije koji tacno tag te interesuje. Meni je u ovom primeru bilo trazeno da izvucem vrednos izmedju <status> tagova pri tom se zna da ima tacno jedan <status> tag

Code:

    $URL="$url?$parsingParameters"; 
    $ch = curl_init();
    

// set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, "http://$URL");
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

// grab URL and pass it to the browser
    $html_strana= "";
    $html_strana = curl_exec($ch);

    // close cURL resource, and free up system resources
    curl_close($ch);
    
    list($pre,$posle) = explode("<status>", $html_strana);
    list($vrednost,$posle) = explode("</status>", $posle);
    
    return $vrednost;


Mozes da iskoristis ovaj kod gore sa malom modifikacijom da ti samo vraca sorce html strane pa da posle ti obradjujes source. to moze recimo daizgleda ovako

Code:

<?php
function PassParametersToServer($url, $parsingParameters){
     /* $url = web page location. Pass it without http:// */
    /* $parsingParameters = Getparameters. Pass it without ? */
    /* example: 
        $url = "www.example.com"
        $parsingParameters = "name=Dzo%20Hamilton&location=Los%20Angeles"
    */
    $URL="$url?$parsingParameters"; 
    $ch = curl_init();
    

// set URL and other appropriate options
    curl_setopt($ch, CURLOPT_URL, "http://$URL");
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

// grab URL and pass it to the browser
    $html_strana= "";
    $html_strana = curl_exec($ch);

    // close cURL resource, and free up system resources
    curl_close($ch);
        return $html_strana;
}
?>
<form name=form1 action=<?php echo "\"".$_SERVER['PHP_SELF']."\"";?> method=post>
<input type=text name=urlStrana value="www.test.com" size=100 style="background-color:336699; color:FFFFFF;">
<input type=submit name=submit value="Start conversion">
</form>
<?php
$urlstrana = "";
if(isset($_POST['urlStrana'])) $urlstrana = "http://".$_POST['urlStrana'];
echo "Encoded page: $urlstrana<br>";
echo "<br>---------------------------------<BR><BR><BR><BR>";
if(isset($_POST['urlStrana']))
//PassParametersToServer($_POST['urlStrana'], "");
echo "<br>---------------------------------<BR><BR><BR><BR>";
$test_kod = PassParametersToServer($_POST['urlStrana'], ""));
$html_strana = $test_kod;
$stani = false;
for($i=0; $i<strlen($html_strana); $i++){
     if($html_strana[$i]== "<") {$stani = false; 
     if($html_strana[$i+1]=='t' && $html_strana[$i+2]=='r')echo "<br>";
     if($html_strana[$i+1]=='t' && $html_strana[$i+2]=='d')echo "|";}
     if($html_strana[$i]== ">") { if($html_strana[$i+1]!= "<") {$stani = true; $i++;} }
     if($stani){
      if($html_strana[$i]== " ") echo "&nbsp;";
    echo "
        {$html_strana[$i]}
    ";
    }
}
?>


Ovaj kode
Code:

for($i=0; $i<strlen($html_strana); $i++){
     if($html_strana[$i]== "<") {$stani = false; 
     if($html_strana[$i+1]=='t' && $html_strana[$i+2]=='r')echo "<br>";
     if($html_strana[$i+1]=='t' && $html_strana[$i+2]=='d')echo "|";}
     if($html_strana[$i]== ">") { if($html_strana[$i+1]!= "<") {$stani = true; $i++;} }
     if($stani){
      if($html_strana[$i]== " ") echo "&nbsp;";
    echo "
        {$html_strana[$i]}
    ";
    }
}

ce te resiti samo nekih tagova ti sad sam koriguj kako tebi odgovara. Funkciju mozes da prekopiras.

A da umalo da zaboravim mora da omogucis curl.

---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

[es] :: PHP :: Pretraga stringa ?

[ Pregleda: 3260 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.