[PHP] Wildcard probleem in script

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Mijn script pakt data van een XML source en stopt die daarna in een MySQL db, maar nu wil ik bijvoorbeeld dat hij alle data die begint met Bijvoorbeeld een 9 dus 978 niet in de database pakt, maar 878 weer wel. Dus eigenlijk 9.* maar heb al van alles geprobeerd maar krijg het niet voor elkaar

PHP:
1
2
3
4
5
    } 

    if ($res[1] == "9"*"" ) {
        $res[1] = "--Geen--";
    }

ook met % ipv * geprobeerd
maar hij ziet nu alles aan als 9

of

PHP:
1
2
3
4
5
    } 

    if ($res[1] == "9*" ) {
        $res[1] = "--Geen--";
    }


en hier doet die helemaal niets mee.

Kan iemand mij vederhelpen??

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
PHP:
1
2
3
if ($res[1]{0} == '9'){
 $res[1] = "--Geen--";
}

Dacht ik.

Maar waarom niet in de SQL?

SQL:
1
...NOT LIKE '9%'...


In de where clausule. :)

[ Voor 53% gewijzigd door Gonadan op 20-10-2006 12:10 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
kan idd ook, maar het probleem is dat ik dan heelveel data in mijn SQL krijg die daar niet thuis hoord. En dan moet ik regelmatig die db opschonen.

edit//
want vederop in mijn script wordt gekeken als er --geen-- staat dan wordt die niet in de DB gestopt.

Maar Thx voor je snelle reactie :D

[ Voor 23% gewijzigd door CdRwin op 20-10-2006 12:18 ]

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
CdRwin schreef op vrijdag 20 oktober 2006 @ 12:13:
kan idd ook, maar het probleem is dat ik dan heelveel data in mijn SQL krijg die daar niet thuis hoord. En dan moet ik regelmatig die db opschonen.

edit//
want vederop in mijn script wordt gekeken als er --geen-- staat dan wordt die niet in de DB gestopt.

Maar Thx voor je snelle reactie :D
Ik neem aan dat je dat array doorloop met een loop?
Dan kan je ook unset($res[1]) gebruiken, dan verwijder je dat item gewoon. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Gonadan schreef op vrijdag 20 oktober 2006 @ 12:23:
[...]


Ik neem aan dat je dat array doorloop met een loop?
Dan kan je ook unset($res[1]) gebruiken, dan verwijder je dat item gewoon. :)
Maar ik neem aan dat je bij unset($res[1]) ook nog steeds moet aangeven welke item weg moet, want alleen de waarde die met bijvoorbeeld 9 begint die met weg de rest niet.

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
CdRwin schreef op vrijdag 20 oktober 2006 @ 12:36:
[...]


Maar ik neem aan dat je bij unset($res[1]) ook nog steeds moet aangeven welke item weg moet, want alleen de waarde die met bijvoorbeeld 9 begint die met weg de rest niet.
Dat klopt.

Ik begrijp hieruit dat $res geen array is waar je doorheen loopt?
Misschien is het sowieso handiger om vlak voor het inserten naar de database de check te doen, iets als:
if (niet begin 9) insert;

[ Voor 15% gewijzigd door Gonadan op 20-10-2006 12:41 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Ik snap wat je bedoeld maar weet niet precies hoe ik het moet toepassen, ik plaats wel ff het hele stukje waar het over gaat. Misschien dat je me dan iets meer kunt helpen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$begin1 = "<getal>";
    $eind1 = "</getal>";

    eregi("$begin1(.*)$eind1", $pagina, $res);
    $res[1] = str_replace("<b>", "", $res[1]);
    $res[1] = str_replace("</b>", "", $res[1]);

    if(substr_count($res[1], "</getal>") > 0){
        $res[1] = substr($res[1], 0, strpos($res[1], "</getal>"));
        $weg = "Watch";
    } 

    if ($res[1] == "9*" ) {
        $res[1] = "--Geen--";
    }
    //end eregi de titel
    return $res[1];
}

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Aha, ik neem dat dit een functie is die een getal uit een 'pagina' moet halen?

Wordt dit één keer gedaan of wordt dit in een loop aangeroepen?

Ik zie de achterliggende gedachte nog niet. :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 20-09 16:45
wildcards in php ? Is dat nieuw ?

Ik denk dat je het stukje in de manual over 'regular expressions' nog eens een keer moet lezen.

En de eerste oplossing van gonadan zou ook moeten werken.

[ Voor 18% gewijzigd door StevenK op 20-10-2006 13:00 ]

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Naar aanleiding van de opmerking van StevenK:

Regular expressions zijn niet nodig om te controleren op de 9.
Maar je kunt wel de regular expression die je gebruikt wat verbeteren.
Als je wat meer informatie geeft over wat je probeert te doen kunnen we je gerichter advies geven.

Om bijvoorbeeld een (geheel) getal uit een string te halen kan je ook deze expressie gebruiken:
[code=php]
eregi('/\d+/', $pagina, $res);

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Gonadan schreef op vrijdag 20 oktober 2006 @ 12:55:
Aha, ik neem dat dit een functie is die een getal uit een 'pagina' moet halen?

Wordt dit één keer gedaan of wordt dit in een loop aangeroepen?

Ik zie de achterliggende gedachte nog niet. :)
Dit wordt 1x gedaan, hij haalt de data van een pagina dmv fopen hij begint met pakken bij <getal> en stopt bij </getal>d an kijkt ie of er ook html code instaat (<b> en </b>) die haalt ie eruit.
en dan de if functie, die zou moeten kijken of er een waarde begint met bijvoorbeeld een 9 en die wil ik eruit hebben dus --geen--.

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • StevenK
  • Registratie: Februari 2001
  • Laatst online: 20-09 16:45
Nu roep ik iets waar ik geen verstand van heb, maar in de php manual kwam ik iets tegen over een 'xml parser'. Is 't niet veel logischer om die XML op die manier te parsen en daarna die data te manipuleren ?

Was advocaat maar vindt het juridische nog steeds leuk


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$begin1 = "<getal>";
    $eind1 = "</getal>";

    eregi("$begin1(.*)$eind1", $pagina, $res);
    $res[1] = str_replace("<b>", "", $res[1]);
    $res[1] = str_replace("</b>", "", $res[1]);

    if(substr_count($res[1], "</getal>") > 0){
        $res[1] = substr($res[1], 0, strpos($res[1], "</getal>"));
        $weg = "Watch";
    } 

    }
    //end eregi de titel
    return ($res[1]{0}=='9') ? null : $res[1];
}
?>

En dan controleren of je null terug krijgt, zo niet dan toevoegen.

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Gonadan schreef op vrijdag 20 oktober 2006 @ 13:41:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$begin1 = "<getal>";
    $eind1 = "</getal>";

    eregi("$begin1(.*)$eind1", $pagina, $res);
    $res[1] = str_replace("<b>", "", $res[1]);
    $res[1] = str_replace("</b>", "", $res[1]);

    if(substr_count($res[1], "</getal>") > 0){
        $res[1] = substr($res[1], 0, strpos($res[1], "</getal>"));
        $weg = "Watch";
    } 

    }
    //end eregi de titel
    return ($res[1]{0}=='9') ? null : $res[1];
}
?>

En dan controleren of je null terug krijgt, zo niet dan toevoegen.
Het werkt! maar nu had ik graag de waarde --geen-- op die plek gehad want hij maakt nu leege aan.

www.Qbox.nl


Acties:
  • 0 Henk 'm!

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
CdRwin schreef op vrijdag 20 oktober 2006 @ 14:03:
[...]


Het werkt! maar nu had ik graag de waarde --geen-- op die plek gehad want hij maakt nu leege aan.
null is de echte waarde voor niets, je kan daarop controleren met == null.
Maar als je toch liever --geen-- wilt gebruiken kan je null gewoon vervangen door '--geen--' :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Acties:
  • 0 Henk 'm!

  • CdRwin
  • Registratie: Juni 2001
  • Laatst online: 27-09-2024
Gonadan schreef op vrijdag 20 oktober 2006 @ 14:05:
[...]

null is de echte waarde voor niets, je kan daarop controleren met == null.
Maar als je toch liever --geen-- wilt gebruiken kan je null gewoon vervangen door '--geen--' :)
Helemaal Top Gonadan!! thx voor de goede en snelle hulp :D

www.Qbox.nl

Pagina: 1