Avatar billede terra Nybegynder
14. juli 2007 - 20:19 Der er 24 kommentarer og
1 løsning

Hente tekstfragment fra html dok til ny parametre

Hei,
Jeg har en enkel "minfil.html":
<html>
http://www.et_eller_andet.com/api?uno=1&duos=2&tres=3
</html>

Hvordan kan jeg hente alt teksten melom <html></html> i PHP og lave en ny parametre i den?
Avatar billede nielle Nybegynder
14. juli 2007 - 20:41 #1
Noget i denne stil?

$origText =
"<html>
http://www.et_eller_andet.com/api?uno=1&duos=2&tres=3
</html>";

if (preg_match("/<html>(.*)</html>/", $origText, $matches))
    $newText = $matches[1];
else
    $newText = "Filen matchede ikke";
Avatar billede nielle Nybegynder
14. juli 2007 - 20:45 #2
Eller simpelthen:

$origText =
"<html>
http://www.et_eller_andet.com/api?uno=1&duos=2&tres=3
</html>";

$newText = $matchesstr_replace("<html>", "", $origText);
$newText = $matchesstr_replace("</html>", "", $newText);
Avatar billede terra Nybegynder
15. juli 2007 - 00:21 #3
Hmm, -> nielle
Hvordan åbner jeg den "minfil.html" filen for at lese?
fopen();?
Jeg ska lese for å så hente til PHP,
er ikke særs ørn i PHP :)
Avatar billede terra Nybegynder
15. juli 2007 - 00:27 #4
Det kan også bli:
<html>
et_eller_andet
</html>
Men je må hente det til PHP filen som parametre.
Avatar billede terra Nybegynder
15. juli 2007 - 01:00 #5
Jepp, jeg ordnet det med:
fopen();
/-> nielle, du kan fortsat hjelpe meg med nåe andet hvis ok?
Avatar billede nielle Nybegynder
15. juli 2007 - 08:04 #6
Sig frem :^)
Avatar billede terra Nybegynder
15. juli 2007 - 15:33 #7
Jeg har en database 'balabala.txt' med:

053175,tele.dk,TY
486275,figo.fy,CZ
358214,dere.be,TH
445210,tele.dk,ZX

Hvordan kan jeg søge om det findst 053175 i dene?
Terra
Avatar billede jakobdo Ekspert
15. juli 2007 - 15:38 #8
$findMe = '053175';
$content = file('balabala.txt');
for($i = 0; $i < count($content); $i++)
{
if(strpos($content[$i],$findMe))
{
echo $findMe . ' fundet i linje : ' . $i . '<br />';
}
}
Avatar billede terra Nybegynder
15. juli 2007 - 18:06 #9
Tak -> jakobdo
Et par små problem:
1/den tar ikke den første sifer dvs.:
jeg må skrive $findMe = '53175'; for at den ska finne '053175' i 'balabala.txt'
2/Hvordan kan jeg stope hvis $findMe er fundet og returnere $Fundet = 1;
else $Fundet = 0; hvis den er ikke i 'balabala.txt'?
Avatar billede jakobdo Ekspert
15. juli 2007 - 18:12 #10
Jeg sover.
Det skal jo være:

if(strpos($content[$i],$findMe) !== false)

Og i stedet for : echo $findMe . ' fundet i linje : ' . $i . '<br />';
Kan du lave:
$fundet = 1;
Avatar billede jakobdo Ekspert
15. juli 2007 - 18:14 #11
Og fuld kode:

<?php
$filename = 'balabala.txt';
$findMe  = '053175';
$found    = 0;
$content = file($filename);
for($i = 0; $i < count($content); $i++)
{
    if(strpos($content[$i],$findMe) !== false)
    {
        $found = 1;
    }
}

echo 'FUNDET : <b>' . $found . '</b>';

?>
Avatar billede terra Nybegynder
15. juli 2007 - 19:51 #12
jakobdo -> jipii... :)
... men, .. med $findMe ='3' bliver den også $found = 1;
Hvordan kan vi smi ind $lengde af $findMe måste bli == 5?
Lav et svar med det samme,
MVH Terra
Avatar billede jakobdo Ekspert
15. juli 2007 - 19:56 #13
Hvorfor skal længden være 5?
Så skal vi lave en anden måde at søge på, hvis det ikke bare er en tekst der skal findes.
Avatar billede terra Nybegynder
15. juli 2007 - 22:51 #14
unskyld,6! Den 15/07-2007 18:14:27 er OK, men ska bare give $found = 1; hvis er $findMe=='053175'; eksakt. Nu giver den også $found = 1; for $findMe= 0, 5, 05, 531, 75, ...,
Avatar billede jakobdo Ekspert
16. juli 2007 - 07:26 #15
Du kan vel bare lade vær med at søge på 0, 5, 05 osv...?
Avatar billede terra Nybegynder
16. juli 2007 - 17:10 #16
Nix, ska hente $findMe fra queryStr
Den ska velge bruger med korekt numer.
Hvordan teler jeg lengde av en Str i PHP?
Avatar billede jakobdo Ekspert
16. juli 2007 - 18:54 #17
strlen()
Avatar billede terra Nybegynder
16. juli 2007 - 22:21 #18
Mange tak -> jakobdo
Et par små ting:
Hva er forskjel på:
echo('blabla') og die('blabla')
'bla' og "bla"

- // me == (er ny i PHP)
Lav et svar så ska du få velfortjente points:)
Avatar billede terra Nybegynder
16. juli 2007 - 22:36 #19
more points?
Avatar billede jakobdo Ekspert
17. juli 2007 - 16:42 #20
echo('bla'); og echo 'bla'; er det samme.
die('bla'); vil skrive bla til skærmen og så vil scriptet stoppe.
Ligesom når du kalder exit(); eller exit('bla');

Forskellen på 'bla' og "bla" er at i 'bla' vil php ikke kigge efter variabler og specielle karakterer i stregen.
Det vil den gøre i "bla"

Det kunne f.eks. være:

$var = 'smart';
echo "PHP er $var";
Og det vil så skrive: PHP er smart

$var = 'smart';
echo 'PHP er $var';
Og det vil så skrive: PHP er $var

Ligeledes kan du lave newlines, via \r\n, dem skal du huske at bruge i "\r\n" da de ikke oversættes i '\r\n'

:o)

Du får et svar.

Og de skal jo deles med Nielle, da han jo svarede på det opringelige spørgsmål.
Avatar billede jakobdo Ekspert
17. juli 2007 - 16:42 #21
Svar!
Avatar billede nielle Nybegynder
17. juli 2007 - 17:17 #22
Nahh, gi' du dem bare alle sammen til jakobdo. Han har så rigeligt fortjent dem. Men ellers tak for tilbudet. :^)
Avatar billede terra Nybegynder
17. juli 2007 - 20:51 #23
Tusind tak for hjelpen.
jakobdo -> /nielle/ var lidt på blåbær tur, så jeg måste suge ud parametre med fopen (som det heter på fagspråg ;)) og bruger en kung-fu stripper for at stripe tags.
Avatar billede terra Nybegynder
17. juli 2007 - 21:02 #24
nielle -> du er en ekspert på Perl, er det noe jeg kan gjøre her?
http://www.eksperten.dk/spm/787474
Avatar billede jakobdo Ekspert
18. juli 2007 - 06:59 #25
Jeg takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester