abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 20:43:47 #181
1972 Swetsenegger
Egocentrische Narcist
pi_29491317
quote:
Op zondag 7 augustus 2005 20:20 schreef Light het volgende:

[..]

Je gaat een variabele 2 keer toewijzen, resultaat is dat de eerste eigenlijk wel weg kan. Je kunt wel iets doen dat als je een lege string opgeeft voor $host, dat dan localhost gebruikt wordt. Als je een variabele wilt weglaten dan moet het de laatste zijn.
Ok, dan is wat jij zei een stuk mooier
Nu eens kijken wat ik allemaal in classes kan gaan proppen.
pi_29491388
Swets, kijk anders eens naar de PEAR libraries, dat zijn ook allemaal classes over het algemeen.

http://pear.php.net
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:08:00 #183
1972 Swetsenegger
Egocentrische Narcist
pi_29491631
quote:
Op zondag 7 augustus 2005 20:04 schreef Roönaän het volgende:
De genoemde database class is bijvoorbeeld ietwat simplistisch. In de object attributen zou je bijvoorbeeld de link identifier moeten opslaan en deze consequent gebruiken bij alle methoden. Dan kan je namelijk op eenvoudige manier een connectie onderhouden met twee mysql servers, dmv twee verschillende db-objecten.
Ok, maar hoe neem ik de link-identifier op in mijn object?
Die krijg je toch pas terug op het moment dat je een verbinding maakt?

Ik heb een database class gevonden, welke het wel doet. Ik moet 'm alleen ff goed bestuderen. (overigens wordt wel duidelijk dat de link identifier door de claas wordt terug gegeven, maar niet hoe ik 'm in mijn object opneem (heet dat een method trouwens?))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
function Connect($sHost = '', $sDatabase = '', $sUser = '', $sPassword = '')
    {
        $this->sHost = $sHost;
        $this->sDatabase = $sDatabase;
        $this->sUser = $sUser;
        $this->sPassword = $sPassword;

        // Establish connection and select database.
        if (! $this->iConnectionID)
        {
            $this->iConnectionID = @mysql_connect($this->sHost, $this->sUser, $this->sPassword);

            if (!$this->iConnectionID)
            {
                $this->iErrorNr = @mysql_errno($this->iConnectionID);
                $this->sError = @mysql_error($this->iConnectionID);
                $this->Error("No connection with host: " . $this->sHost);
                return 0;
            }

            if (!@mysql_select_db($this->sDatabase,$this->iConnectionID))
            {
                $this->iErrorNr = @mysql_errno($this->iConnectionID);
                $this->sError = @mysql_error($this->iConnectionID);
                $this->Error("No connection with database: " . $this->sDatabase);
                $this->Disconnect();
                return 0;
            }
        }

        return $this->iConnectionID;
    }


[ Bericht 2% gewijzigd door Swetsenegger op 07-08-2005 21:17:20 ]
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:15:53 #184
1972 Swetsenegger
Egocentrische Narcist
pi_29491758
quote:
Op zondag 7 augustus 2005 20:49 schreef Roönaän het volgende:
Swets, kijk anders eens naar de PEAR libraries, dat zijn ook allemaal classes over het algemeen.

http://pear.php.net
Dat ga ik zeker doen (had al een en ander over PEAR gehoord, dacht eerst dat het een 'extra' pakket binnen php was, zoals GD2), maar ik wil het bergijpen zeg maar.

Daarna ga ik wel geoptimaliseerde code van anderen gebruiken welke het nog beter begrijpen dan mij
pi_29491832
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Database
{
    var $host;
    var $user;
    var $database;
    var $link;
    var $queries[];

    // constructor
    function Database($user, $pass, $database, $host='localhost')
    {
        // initialiseer hier bepaalde gegevens
        $this->host = $host;
        $this->user = $user;
        $this->database = $database;

        if( @mysql_connect($this->host, $this->user, $pass) ) {
            if(! ($this->link=mysql_select_db($this->database))) {
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
            }
        } else {
            die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
    }

    function query($query) {
        $this->queries[] = $query;
        $result = mysql_query($query, $this->link);
        return $result;
}

Zo is het nog steeds een hele simpele class, maar hij gebruikt wel de link identifier. Die wordt automatisch iedere keer door de functie query gebruikt. Uiteraard kan die functie nog veel meer doen tijdens voor en na het uitvoeren van de query. Vandaar ook dat ik $result gebruik als tussenstap
pi_29491838
Pear is zeg maar een soort giant include library.

Opgedeeld in categorien. in pear_auth zitten authorization libraries van verschillende soorten, pear_html bevat allemaal html ongein, pear_db bevat database abstraction stuff. Belangrijkste van de libs, is dat je "standaard" oplossingen gebruikt.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:44:53 #187
1972 Swetsenegger
Egocentrische Narcist
pi_29492214
quote:
Op zondag 7 augustus 2005 21:21 schreef Light het volgende:

[ code verwijderd ]

Zo is het nog steeds een hele simpele class, maar hij gebruikt wel de link identifier. Die wordt automatisch iedere keer door de functie query gebruikt. Uiteraard kan die functie nog veel meer doen tijdens voor en na het uitvoeren van de query. Vandaar ook dat ik $result gebruik als tussenstap
stoer, ik was even vergeten dat je de link identifier optioneel kon meegeven met mysql_query (al mijn projecten hebben maar 1 DB. De hoster biedt er ook niet meer per pakket )
Alleen betekent dit wel dat ik met veel queries een enorme array $query krijg.

-edit- o nee, alleen als ik een nieuwe DB connectie maak

[ Bericht 6% gewijzigd door Swetsenegger op 07-08-2005 21:50:02 ]
pi_29492323
quote:
Op zondag 7 augustus 2005 21:44 schreef Swetsenegger het volgende:

[..]

stoer, ik was even vergeten dat je de link identifier optioneel kon meegeven met mysql_query.
Alleen betekent dit wel dat ik met veel queries een enorme array $query krijg.

-edit- o nee, alleen als ik een nieuwe DB connectie maak
Je krijgt een array die bijvoorbeeld via $db->queries[] te benaderen is. Die beval alle uitgevoerde queries. En je kunt er nog meer bijzetten, zoals de tijd die nodig was voor het uitvoeren en de mysql foutcode. Dan kun je ook nagaan waar je verder kunt optimaliseren, om eens een zijstraat te noemen.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:52:56 #189
1972 Swetsenegger
Egocentrische Narcist
pi_29492334
Pas dit eigenlijk nog wel in PHP voor dummies?
En nog een side remark. Ondersteunt GD2 nu wel of niet .gif files?
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 22:01:34 #190
1972 Swetsenegger
Egocentrische Narcist
pi_29492463
quote:
Op zondag 7 augustus 2005 21:52 schreef Light het volgende:

[..]

Je krijgt een array die bijvoorbeeld via $db->queries[] te benaderen is. Die beval alle uitgevoerde queries. En je kunt er nog meer bijzetten, zoals de tijd die nodig was voor het uitvoeren en de mysql foutcode. Dan kun je ook nagaan waar je verder kunt optimaliseren, om eens een zijstraat te noemen.
Ja, hij zet dus wel elke query in een array.
Hmz. Nou het begint een beetje te dagen. Toch ben ik nog steeds op zoek naar goede documentatie
pi_29498651
Om het netjes te houden zou je nog een getQueryHistory methode kunnen aanmaken die de queries array teruggeeft. Je zou dan zelfs kunnen filteren op query-type (insert/delete/update/select).
pi_29498875
quote:
Op zondag 7 augustus 2005 21:52 schreef Swetsenegger het volgende:
En nog een side remark. Ondersteunt GD2 nu wel of niet .gif files?
Het lezen van gifs is er nooit uit geweest. Het maken van gifs zit er sinds vorig jaar weer in
Je kunt alleen geen animated gifjes maken met imagegif().
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29502596
Hey allemaal..

Ik ben bezig met een script dat een stuk tekst moet doorzoeken op bepaalde tekens... om deze te veranderen in iets anders.

Normaal zou ik dat doen met de functie str_replace, maar ik vraag mij af of het makkelijker kan.

Bijv:

$text = "Dit is een ===Titel=== en die titel kan ook minder ==groot==\nDit is een ===Titel=== en die titel kan ook minder ==groot==\n";

Stel ik wil alles tussen de === tekens vervangen door een <h1> en een </h1> en alles tussen een == vervangen door <h2> en </h2>.

Hoe zouden jullie het zo effectief mogelijk in elkaar zetten?
www.piccas.nl duizenden foto's van bekende celebs en de mogelijkheid om zelf over ze te schrijven!!!
***Get famous - Describe the famous***
pi_29503854
quote:
Dat geeft inderdaad 1 deel(het makkelijkste) van het vraagstuk weer.. maar nu nog hoe je de ene keer de ene en de andere keer een andere vervanging moet doen... zoals bijv in:


1 ABC 2 ABC 3 ABC 4 ABC

wordt

1 <B> 2 </B> 3 <B> 4 </B>
www.piccas.nl duizenden foto's van bekende celebs en de mogelijkheid om zelf over ze te schrijven!!!
***Get famous - Describe the famous***
pi_29504995
1
2
3
4
5
6
$text = "=== groot === ==kleiner== =nog kleiner= normaal";
$text = ereg_replace('===(.*)===','<h1>\\1</h1>',$text);   
$text = ereg_replace('==(.*)==','<h2>\\1</h2>',$text);   
$text = ereg_replace('=(.*)=','<h3>\\1</h3>',$text);   

echo $text;


Dat lijkt wel te werken

-edit- regexp zijn niet mijn ding
-edit2- okay, dit werkt niet. als er meer dan 1x een match inzit fropt het. wie verbetert het even?

[ Bericht 11% gewijzigd door Nevermind op 08-08-2005 18:11:26 ]
pi_29505053
Ik zou voor reguliere expressies toch de code-tag gebruiken en niet de php-tag. Voor de leesbaarheid enzo
pi_29505918
quote:
Op maandag 8 augustus 2005 18:00 schreef Nevermind het volgende:

[ code verwijderd ]
-edit2- okay, dit werkt niet. als er meer dan 1x een match inzit fropt het. wie verbetert het even?
Dat komt doordat ereg_replace "greedy" is. Met preg_replace kan je het "greedy" gedrag van het * veranderen in "non-greedy" door er een ? achter te zetten:

1
2
3
4
5
$text = "=== groot === ==kleiner== ==kleiner== =nog kleiner= normaal";
$text = preg_replace('/===(.*?)===/', '<h1>\\1</h1>', $text);   
$text = preg_replace('/==(.*?)==/', '<h2>\\1</h2>', $text);   
$text = preg_replace('/=(.*?)=/', '<h3>\\1</h3>', $text);   
echo $text;
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 19:01:46 #199
1972 Swetsenegger
Egocentrische Narcist
pi_29505921
1
2
3
4
5
6
7
8
<?php
$text
= "===groot=== ==kleiner== =nog kleiner= normaal";
$text = preg_replace('#[=]{3}(.*)[=]{3}#','<h1>\\1</h1>',$text);
$text = preg_replace('#[=]{2}(.*)[=]{2}#','<h2>\\1</h2>',$text);
$text = preg_replace('#[=]{1}(.*)[=]{1}#','<h3>\\1</h3>',$text);

echo
$text;
?>
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 19:05:24 #200
1972 Swetsenegger
Egocentrische Narcist
pi_29505980
quote:
Op maandag 8 augustus 2005 19:01 schreef SuperRembo het volgende:

[..]

Dat komt doordat ereg_replace "greedy" is. Met preg_replace kan je het "greedy" gedrag van het * veranderen in "non-greedy" door er een ? achter te zetten:
[ code verwijderd ]

Die zocht ik, die van mij was ook nog greedy
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 21:29:07 #201
1972 Swetsenegger
Egocentrische Narcist
pi_29506530
1
2
3
4
5
6
7
<?php
$text
= "=nog kleiner= normaal ==kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot====";
$text = preg_replace('/===([^=<].*?)===/', '<h1>\\1</h1>', $text);
$text = preg_replace('/==([^=<].+?)=={1}/', '<h2>\\1</h2>', $text);
$text = preg_replace('/=([^=<].+?)=/', '<h3>\\1</h3>', $text);
echo
$text;
?>
pi_29507069
Zo dan
Matched wel =een=, ==twee== en ===drie===, maar niet =eentwee==, ====vier==== of ====.

1
2
3
$text = preg_replace('/(?<!=)===([^=]+?)===(?!=)/', '<h1>$1</h1>', $text);
$text = preg_replace('/(?<!=)==([^=]+?)==(?!=)/', '<h2>$1</h2>', $text);
$text = preg_replace('/(?<!=)=([^=]+?)=(?!=)/', '<h3>$1</h3>', $text);
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 22:03:36 #203
1972 Swetsenegger
Egocentrische Narcist
pi_29507144
quote:
Op maandag 8 augustus 2005 21:59 schreef SuperRembo het volgende:
Zo dan
Matched wel =een=, ==twee== en ===drie===, maar niet =eentwee==, ====vier==== of ====.
[ code verwijderd ]
uitslover

-edit- hmz, gaat toch de mist nog in SuperRembo:
1
2
3
4
5
6
7
8
9
10
<?php
$text
= "=nog kleiner= normaal =kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot====";
//$text = preg_replace('/===([^=<].*?)===/', '<h1>\\1</h1>', $text);
//$text = preg_replace('/==([^=<].+?)=={1}/', '<h2>\\1</h2>', $text);
//$text = preg_replace('/=([^=<].+?)=/', '<h3>\\1</h3>', $text);
$text = preg_replace('/(?<!=)===([^=]+?)===(?!=)/', '<h1>$1</h1>', $text);
$text = preg_replace('/(?<!=)==([^=]+?)==(?!=)/', '<h2>$1</h2>', $text);
$text = preg_replace('/(?<!=)=([^=]+?)=(?!=)/', '<h3>$1</h3>', $text);
echo
$text;
?>


wat doet ! gewoon 'not'? ik begrijp deze dus niet: (?<!=)
pi_29507217
1
2
3
4
5
6
7
<?php
$text
= "=nog kleiner= normaal ==kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot====";
$text = preg_replace('/===([^=<].*)===/U', '<h1>\\1</h1>', $text);
$text = preg_replace('/==([^=<].+)=={1}/U', '<h2>\\1</h2>', $text);
$text = preg_replace('/=([^=<].+)=/U', '<h3>\\1</h3>', $text);
echo
$text;
?>

Ook ungreedy
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 22:11:00 #205
1972 Swetsenegger
Egocentrische Narcist
pi_29507296
Ik heb zelfs nog een foutje/probeerseltje laten staan zie ik ({1} in de tweede preg_replace, welke nutteloos is).
pi_29507316
O crap ja. Logish ook wel, omdat je met de === "tag" geen onderscheid tussen start en eind hebt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 22:19:00 #207
1972 Swetsenegger
Egocentrische Narcist
pi_29507469
Andere vraag.
Date veld in een table. Ik vul hem met NOW().
Als ik 'm uitlees heb ik dus yyyy-mm-dd. Is er een eenvoudige functie (mysql of php) om deze naar nederlandse notatie te converteren (dd-mm-yyyy) of wordt het toch dit

1
2
3
4
5
<?php
$date_array
=explode('-', $date_db);
$date=$date_array[2]."-".$date_array[1]."-".$date_array[0];
echo
"$date";
?>
pi_29507662
Je kunt MySql een timestamp terug laten geven met UNIX_TIMESTAMP(mydate). Dan kan je 'm in php met date('d-m-Y', $mydate) naar een datumstring omzetten.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 22:37:07 #209
1972 Swetsenegger
Egocentrische Narcist
pi_29507854
quote:
Op maandag 8 augustus 2005 22:27 schreef SuperRembo het volgende:
Je kunt MySql een timestamp terug laten geven met UNIX_TIMESTAMP(mydate). Dan kan je 'm in php met date('d-m-Y', $mydate) naar een datumstring omzetten.
hoe geeft hij een date veld terug als unix timestamp dan? Dan is een datetime veld wel wat eenvoudiger om tezetten, anders blijf ik exploden
pi_29508099
FROM_UNIXTIME(timestamp) maakt van een timestamp een datum, UNIX_TIMESTAMP(date) maakt van een datum een timestamp.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')