|
| Kopiere dynamisk streng fra webside Fra : Mikkel Jørgensen |
Dato : 26-08-06 22:07 |
| | |
phpartikler.dk (27-08-2006)
| Kommentar Fra : phpartikler.dk |
Dato : 27-08-06 11:09 |
|
Der er flere ting i det. Den ene er at få hele indholdet fra den angivne url
ned i streng, og den anden er at få trukket selve "7 kg" ud.
Her er en idé til hvordan du kan hive det 7 tal ud (forudsat at $indhold
indeholder kildekoden fra url'en).
$indhold = strip_tags($indhold);
preg_match("/Vægt:.*?(\d+) (kg|gram|g)/s", $indhold, $regs);
echo $regs[1] . ' (' . $regs[2] . ')';
Sig til hvis du også vil have en ide til hvordan du får indholdet fra url'en
ned i en streng.
| |
Mikkel Jørgensen (27-08-2006)
| Kommentar Fra : Mikkel Jørgensen |
Dato : 27-08-06 11:52 |
|
phpartikler.dk skrev:
> Der er flere ting i det. Den ene er at få hele indholdet fra den angivne url
> ned i streng, og den anden er at få trukket selve "7 kg" ud.
>
> Her er en idé til hvordan du kan hive det 7 tal ud (forudsat at $indhold
> indeholder kildekoden fra url'en).
>
> $indhold = strip_tags($indhold);
> preg_match("/Vægt:.*?(\d+) (kg|gram|g)/s", $indhold, $regs);
> echo $regs[1] . ' (' . $regs[2] . ')';
>
>
> Sig til hvis du også vil have en ide til hvordan du får indholdet fra url'en
> ned i en streng.
mange tak
der er dog et lille problem med koden - hvis pakken på siden er
angivet til at have en vægt på 1,25 kg. så bliver det efter
scriptets behandling til 25 kg. og 0,6 kg. bliver til 6 kg.
| |
phpartikler.dk (27-08-2006)
| Kommentar Fra : phpartikler.dk |
Dato : 27-08-06 12:03 |
|
Ups, min fejl Prøv med:
preg_match("/Vægt:.*?([\d,]+) (kg|gram|g)/s", $indhold, $regs);
I stedet
| |
Mikkel Jørgensen (27-08-2006)
| Kommentar Fra : Mikkel Jørgensen |
Dato : 27-08-06 12:11 |
|
phpartikler.dk skrev:
> Ups, min fejl Prøv med:
>
> preg_match("/Vægt:.*?([\d,]+) (kg|gram|g)/s", $indhold, $regs);
>
> I stedet
Perfekt - bortset fra at den ikke altid fanger vægten, således at det
kun er () der bliver udskrevet :-/
| |
phpartikler.dk (27-08-2006)
| Kommentar Fra : phpartikler.dk |
Dato : 27-08-06 12:28 |
|
> Perfekt - bortset fra at den ikke altid fanger vægten, således at det
> kun er () der bliver udskrevet :-/
Okay, det er nok fordi jeg ikke helt er klar over hvilket format sådan en
vægt kan antage. Kan du komme med nogle eksempler, så det regulære udtryk
kan laves så det passer.
| |
Mikkel Jørgensen (27-08-2006)
| Kommentar Fra : Mikkel Jørgensen |
Dato : 27-08-06 13:17 |
|
phpartikler.dk skrev:
> > Perfekt - bortset fra at den ikke altid fanger vægten, således at det
> > kun er () der bliver udskrevet :-/
>
> Okay, det er nok fordi jeg ikke helt er klar over hvilket format sådan en
> vægt kan antage. Kan du komme med nogle eksempler, så det regulære udtryk
> kan laves så det passer.
Vægten kan optræde med helholdsvis 1 og 2 cifre foran kommaet, og
maksimum et decimal - altså xx,y.
| |
Arne Feldborg (27-08-2006)
| Kommentar Fra : Arne Feldborg |
Dato : 27-08-06 14:48 |
|
"Mikkel Jørgensen" <mikkel.joergensen@gmail.com> skrev 26 Aug 2006
14:06:37 -0700
>Hvordan fanger jeg den vægtangivelse bedst, og smider den i en
>variabel i mit eget script? Indtil videre har jeg kigget på diverse
>streng funktioner, men har ikke kunne stykke noget sammen der gav det
>ønskede resultat.
>
Prøv evt. noget i den her stil:
$handle=fopen(" http://www.postdanmark.dk/tracktrace/TrackTrace.do?i_stregkode=TS123456789DK&i_lang=IND&sourceurl=http://www.postdanmark.dk/tracktrace/","r");
while (!feof($handle)) {
$line = fgetss($handle, 4096);
if (stristr($line, 'Vægt:')){
$line = fgetss($handle, 4096);
$kg = explode(' ', trim($line));
break;
}
}
fclose($handle);
echo 'Pakken vejer: '.$kg[0].' kilo';
exit;
Grunden til at der søges på 'Vægt:' og derefter gåes til næste linie er,
at frasen 'kg' forekommer andre steder i side- eller kildeteksten.
Frasen 'Vægt:' (med kolon) forekommer derimod kun een gang.
Bemærk at fgetss() er med 2 s'er.
--
mvh, A:\Feldborg
Slægtsforskning og lokalhistorie i midt- vestjylland
http://hammerum-herred.dk/
| |
|
|