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

Napredujem ali i dalje ima problema

[es] :: PHP :: Napredujem ali i dalje ima problema

[ Pregleda: 2836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ljuba
Aleksandar Ljubojevic
Marketing Director
Sid/Novi Sad/Malta/Cyprus

Član broj: 1475
Poruke: 203
*.ptt.yu

ICQ: 21352441
Sajt: www.linkedin.com/in/aleks..


Profil

icon Napredujem ali i dalje ima problema30.12.2001. u 22:41 - pre 271 meseci
Cao svima,

Opet ja sa mojim regularnim izrazima ali sam malo napredovao iako i dalje pojma nemam :)))

Trebam da iz celog HTML fajla pokupim <a href ...> tagove i to da uzmem adresu i da uzmem ono sto pise na linku ... Nesto kao:

$link[0] = "http://www.yahoo.com"
$data[0] = "Link to yahoo"
$link[1] = "/testurl/test.htm"
$data[1] = "Link internal"

ili

$link[0][0] = "http://www.yahoo.com"
$link[0][1] = "Link to yahoo"
$link[1][0] = "/testurl/test.htm"
$link[1][1] = "Link internal"

Ovo su neka pocetnicka resenja koja ne rade ... moze li koja pomoc?

page.html:

<html>
<body>
<a href="http://www.yahoo.com">Link to yahoo</a><br><br>
fdsjakljsdflkajsdflkjsadfkasjdflkasjdfkajsdf<br><br>
test <br><br>
test <br><br>
<a href="/testurl/test.htm">Link internal </a> <br><br>
sdkfjlasfdj <br><br>
</body>
</html>

Pocetnicki index.php: (izbaci gomilu gluposti)

<?php
echo "starting";
$text_native = implode ("", file("page.html"));
ereg("<a href=(.+)", $text_native, $link);
ereg(">(.+)</a>", $text_native, $data);
for ($i = 0;$i < count($data);$i++) {
echo "<br>link: ".$link[$i];
echo "data: ".$data[$i];
}
?>

'Izlet u nepoznato' index.php: (ispise samo starting a ako probam drugacije da ispisem ispisuje rec 'array' za svaku stvar koju je kao 'uhvatio')

<?php
echo "starting";
$text_native = implode ("", file("page.html"));
if (preg_match_all('!<a\s+href="((?>[^"]+))">((?>[^<]*))</a>!iU', $text_native, $matches))
{
print_r($files);
}
?>

Hvala unapred

LJUBA
Pozdrav

LJUBA
 
Odgovor na temu

RAZZLEDAZZLER
Tora Bora

Član broj: 27
Poruke: 543
*.ppp-bg.sezampro.yu



Profil

icon Re: Napredujem ali i dalje ima problema06.01.2002. u 01:29 - pre 271 meseci
ljuba nudi ljubav...

ovaj, evo ti me "natera" da pochnem da uchim ove regular expressions ... nije loshe, samo 'oce izgleda glava da zaboli od toga
Evo, nashao sam da kazem delimichno reshenje ... shto se tiche ovog tvog page.html u njemu ce sve lepo da nadje i ispishe
...evo sada koda, pa posle toga slede problemi i pitanja

<?php
echo "starting<br><br><br>";
$text_native = implode ("", file("page.html"));

if (preg_match_all("/<a\s+href=\"([^\"]+)\">([^<]+)/", $text_native, $matches))
{

for ($i=0; $i < count($matches[0]); $i++) {
echo "Link: " . $matches[1][$i] . "<br>Data: " . $matches[2][$i] . "<br>--------------<br>";
}

}
?>

Mozda nije najnormalnije uradjen ovaj regexp deo, ali tek sam pocheo sa ovim da se koljem nocas prvi put

E sada, kao shto rekoh u ovom tvom primeru ce sve ok da odradi, ali recimo ako se u data delu nadje znak "<" onda se zaglupi i stane tu [recimo kada bi pisalo Link to < yahoo, u data delu ce ispisati samo Link to]. Znam ja zbog chega je to, ali nisam provalio kako da predjem preko toga, tako da sam za sada stavio da kada naidje na "<" stane.

Umesto onoga pred kraj [^<] , treba da stoji neshto kao [^<\/a>] , znachi kada naidje na </a> da stane, ali on u stvari kada naidje ne bilo koji od tih znaka [< ili / ili a ili >] on staje. Jel moze neko ko je iskusniji sa ovim da mi kaze kako to da sredim?

Da ne zaboravim, ako sam lupio neku zeshcu glupost, nemojte drvlje i kamenje, tek pocheh ovo da uchim, samo josh treba u startu da me pokopa neko
 
Odgovor na temu

RAZZLEDAZZLER
Tora Bora

Član broj: 27
Poruke: 543
*.ppp-bg.sezampro.yu



Profil

icon Re: Napredujem ali i dalje ima problema18.03.2002. u 17:15 - pre 269 meseci
Ala sam iskopao topic, svaka mi chast
Evo sada gledam ovaj topic i gle chuda, znam reshenje [nauchilo se svashta od 6. januara]
Evo koda koji ce da radi iako u data delu nadje znak "<";

<?php
echo "starting<br><br><br>";
$text_native = implode ("", file("page.html"));


if (preg_match_all("|<a\s+href=\"([^\"]+)\">(.*)</a>|", $text_native, $matches, PREG_SET_ORDER)) {
while ($print = each($matches)) {
echo "Link: " . $print[1][1] . "<br>Data: " . $print[1][2] . "<br>--------------<br>";
}

}
?>


I opet sam pobedio ... (game boy)
 
Odgovor na temu

[es] :: PHP :: Napredujem ali i dalje ima problema

[ Pregleda: 2836 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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