abonnement Unibet Coolblue Bitvavo
pi_56393998
Hoe kan ik zorgen dat php mijn geheugen leeg houdt? Ik heb een functie die ik automatisch laat loopen die elke keer een pagina ophaalt door middel van curl, maar het lijkt wel alsof hij deze in zijn geheugen houdt ook al gebruik ik curl_close(). Elke pagina is rond de 10kb dus na 300 pagina's stopt het script omdat de geheugenlimiet bereikt is, niet ideaal dus. Ik heb ook al de variabele met alle html geunset nadat ik deze niet meer nodig heb maar dat verandert ook niks aan het geheugengebruik. Kan ik op een of andere manier het geheugen gedeeltelijk 'leeg' maken of is het enige wat er op zit de geheugenlimiet verhogen (wat natuurlijk geen oplossing is aangezien ik niet weet hoeveel pagina's er gedownload moeten worden).
pi_56394751
Klinkt als een geheugenlek. Welke php versie gebruik je?
pi_56395046
quote:
Op dinsdag 29 januari 2008 20:43 schreef Farenji het volgende:
Klinkt als een geheugenlek. Welke php versie gebruik je?
5.2.5.

Ik snap er zelf ook niks van, hij zou toch het geheugen weer vrij moeten maken bij curl_close() en als ik variabelen unset?
  dinsdag 29 januari 2008 @ 21:26:16 #29
85514 ralfie
!Yvan eht nioj
pi_56395840
In principe wel, maar 300 paginas ophalen met curl is misschien niet iets waar het voor gemaakt is...

je kunt wat kloten met memory_get_usage(), misschien geeft het wat aanwijzingen over waar het fout gaat
pi_56396293
quote:
Op dinsdag 29 januari 2008 21:26 schreef ralfie het volgende:
In principe wel, maar 300 paginas ophalen met curl is misschien niet iets waar het voor gemaakt is...

je kunt wat kloten met memory_get_usage(), misschien geeft het wat aanwijzingen over waar het fout gaat
ongetwijfeld, maar dat zijn andere functies voor dit doeleinde ook niet.

Met memory_get_usage() zie ik heel mooi dat na elk rondje er ongeveer 10 kb bijkomt, wat precies de grootte van de pagina is.
pi_56399181
quote:
Op dinsdag 29 januari 2008 21:42 schreef Janteh het volgende:

[..]

ongetwijfeld, maar dat zijn andere functies voor dit doeleinde ook niet.

Met memory_get_usage() zie ik heel mooi dat na elk rondje er ongeveer 10 kb bijkomt, wat precies de grootte van de pagina is.
Post je script eens?
  woensdag 30 januari 2008 @ 02:12:37 #33
105263 Litso
Interlectueel.
pi_56401688
Vraagje, ik ben een tag-systeem aan het bouwen en om de ingevoerde tags op te splitsen gebruik ik

1      $tagsarray = preg_split('/[^a-zA-Z\'"-]+/', $tags, -1, PREG_SPLIT_NO_EMPTY); 


De pattern heb ik ergens gecopypaste van een script waarbij alle woorden uit een zin werden gesplitst, maar ik kom er nu achter dat hij zo dus ook cijfers weglaat. Eigenlijk wil ik wel datums in kunnen voeren, dus de -, de / en de cijfers wil ik er in laten staan. Ik kom alleen maar niet uit hoe je dat nou voor elkaar krijgt, ik krijg de pattern gewoon niet ontcijferd
Iemand?
"Dat is echt ontzettend zielig" ©
  woensdag 30 januari 2008 @ 08:38:03 #34
136730 PiRANiA
All thinking men are atheists.
pi_56402763
quote:
$tagsarray = preg_split('/[^a-zA-Z0-9-\/\'"-]+/', $tags, -1, PREG_SPLIT_NO_EMPTY);
denk ik
pi_56403190
Op http://85.92.147.131/~obcreunie/ ben ik bezig met het maken van een site in Joomla. Normaal gesproken is het in Joomla niet erg als je van PHP weinig afweet, aangezien er een mooi CMS omheen zit, maar ik heb het nu even nodig.
Op die site je het logo van "Over Betuwe College" in beeld staan. Deze probeer ik te centreren.
Volgens mij wordt deze banner geladen vanuit dit stukje:
quote:
<td width="100%" valign="top" class="body_outer">
<?php if (mosCountModules('banner')) { ?>
<div class="banner_inner"><?php mosLoadModules( 'banner', 1 ); ?></div>
<?php } ?>
<?php if ( $user1 > 0 ) {?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="content_table">
<?php
if ($colspan > 0) {
?>
<tr valign="top">
<?php
if ( $user1 > 0 ) {
?>
<td width="50%">
<div class="user1_inner">
<?php mosLoadModules ( 'user1' ); ?>
</div>
</td>
In mn CSS file staat
quote:
#banner_inner {
float: left;
padding: 0px;
height: 70px;
border: 1px solid #FCFCFC;
Hoe kan ik het aanpassen zodat het plaatje gecentreerd staat?
I asked God for a bike, but I know God doesn't work that way.
So I stole a bike and asked for forgiveness.
pi_56405297
ik wil in een veld een getal opslaan met 2 decimalen. Met phpmyadmin kies ik het type double voor dit veld, maar als ik een rond bedrag invul (dus met 2 nullen na de punt), wordt het getal weggeschreven als getal zonder decimalen.

Welke type moet ik kiezen om alle bedragen als 2 decimalen opgeslagen te krigen?
pi_56405440
Double kort alleen af als er een 0 achter aan staat. Toch? probeer eens 25,66
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_56405745
Klopt, 25.66 wordt weggeschreven als 25.66, maar bijvoorbeeld 145.00 wordt weggeschreven als 145

Ik zou graag zien dat 145.00 ook als 145.00 wordt weggeschreven naar de database, maar hoe?

-edit-

Of is sprintf ook een nette oplossing hiervoor?

1
2
3
<?php
sprintf
('%01.2f'$variable
?>


[ Bericht 58% gewijzigd door Erik op 30-01-2008 11:42:32 ]
pi_56406033
Afaik kan dat alleen als string. Mijn tip: Schrijf het als echte integer naar de database, en voeg die 00 (str_pad?) er in de presentatie-laag pas aan toe.
pi_56406574
Gewoon als double onafgerond opslaan en in je code inderdaad sprintf gebruiken om te formatteren, dat is imo het netste en krijg je ook geen afrondingsfouten. Maar je hebt in mysql ook het type DECIMAL(M,N) type, als je perse een vast aantal getallen achter de komma wil hebben (maar ik kan niet echt een goede reden bedenken hiervoor).
  woensdag 30 januari 2008 @ 12:27:42 #41
39436 Dreammaster
Dat zei je moeder vannacht ook
pi_56406962
quote:
Op woensdag 30 januari 2008 11:47 schreef Geqxon het volgende:
Afaik kan dat alleen als string. Mijn tip: Schrijf het als echte integer naar de database, en voeg die 00 (str_pad?) er in de presentatie-laag pas aan toe.
number_format($getal, 2);
pi_56407724
Dank voor jullie tips, schrijf hem nu weg zonder de decimalen, in de presentatielaag gebruik ik number_format
pi_56407730
Okay ik heb een leuke voor jullie:

met HTMLspecialchars wil hij bij het uitlezen van mn DB niet een <br> zetten(alles komt achterelkaar aan)
En als ik str_replace doe, krijg ik letterlijk <BR> tussen de woorden te zien... Howcome?
Steve-O - dinsdag 13 juli 2004 @ 16:17
van mij mag je weer een ban krijgen .
  woensdag 30 januari 2008 @ 13:05:04 #44
39436 Dreammaster
Dat zei je moeder vannacht ook
pi_56407781
je gooit het met htmlspecialchars(); in de database? dan moet je bij het uitlezen htmlspecialchars_decode(); gebruiken
pi_56407803
quote:
Op woensdag 30 januari 2008 13:05 schreef Dreammaster het volgende:
je gooit het met htmlspecialchars(); in de database? dan moet je bij het uitlezen htmlspecialchars_decode(); gebruiken
Waar moet ik dat omheen zetten? om mijn hele lus?(Met tabel en alles erbij)
Steve-O - dinsdag 13 juli 2004 @ 16:17
van mij mag je weer een ban krijgen .
  woensdag 30 januari 2008 @ 13:11:56 #46
39436 Dreammaster
Dat zei je moeder vannacht ook
pi_56407894
in de variabele waar je html in staat... maar ik zie het nut niet echt om iets met htmlspecialchars in de database te zetten om het vervolgens weer de decoden...
pi_56407927
quote:
Op woensdag 30 januari 2008 13:11 schreef Dreammaster het volgende:
in de variabele waar je html in staat... maar ik zie het nut niet echt om iets met htmlspecialchars in de database te zetten om het vervolgens weer de decoden...

Sowieso niet, die HTMLspecialchars staat erin zodat ik quotjes enz. kan typen... maar niet echt aardig dat ie die BR dan niet pakt..
Steve-O - dinsdag 13 juli 2004 @ 16:17
van mij mag je weer een ban krijgen .
pi_56407943
anywho..

1
2
3
4
5
6
7
8
9
      $_POST['name'] = addslashes($_POST['name']);
      $_POST['name'] = htmlspecialchars($_POST['name']);
      $_POST['message'] = addslashes($_POST['message']);
      $_POST['message'] = htmlspecialchars($_POST['message']);

      if($_POST['name'] && $_POST['message']){
         $query = "INSERT INTO reacties(naam, bericht, getID) VALUES ('$_POST[name]', '$_POST[message]', '$_GET[id]')";
         mysql_query($query);
      }


Das de query
Steve-O - dinsdag 13 juli 2004 @ 16:17
van mij mag je weer een ban krijgen .
  woensdag 30 januari 2008 @ 13:43:56 #49
39436 Dreammaster
Dat zei je moeder vannacht ook
pi_56408520
probeer het volgende eens in plaats van addslashes en htmlspecialchars
1
2
3
<?php
$_POST
['name'] = mysql_real_escape_string($_POST['name']);
?>
pi_56408801
En escapen doe je in de query natuurlijk O-)

1
2
3
4
5
6
7
8
9
<?php
      $name 
$_POST['name'];
      
$message $_POST['message'];

      if(
is_string($name) && is_string($message) {
         
$query "INSERT INTO reacties(naam, bericht, getID) VALUES ('" mysql_real_escape_string($name) . "' , '" mysql_real_escape_string($message) . "', '$_GET[id]')";
         
mysql_query($query);
      }
?>
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')