Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Echo in php centreren.  (gelezen 5454 keer)

0 leden en 1 gast bekijken dit topic.

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Echo in php centreren.
« Gepost op: 19 december 2008, 10:28:49 »
Sinds kort probeer ik wat bij te leren over php, wel op dummy niveau..
Nu probeer ik een aantal gratis scripts uit, om te kijken hoe het werkt. Op www.anouksweb.nl vond ik onderstaande gratis code, deze wil ik graag centreren en in een kader of een veld.
Wie wil mij wat bijleren, waarvoor dank?
<?php
//script door anouksweb.nl
// Verander hier de datum
$dag 01;
$maand 01;
$jaar 2007;
// Wat is er op de uitgerekende dag te doen?
$gebeurtenis "een nieuw jaar";
// Hieronder hoef je niets te veranderen
echo("Nog ".(int)((mktime (0,0,0,$maand,($dag+1),$jaar)-time(void))/86400)."
dagen tot 
$gebeurtenis.");
?>
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Echo in php centreren.
« Reactie #1 Gepost op: 19 december 2008, 11:06:13 »
Je kan in je echo gewoon htmltags gebruiken. Dus de laatste regel:
echo "<center>Nog ".(int)((mktime (0,0,0,$maand,($dag+1),$jaar)-time(void))/86400)."
dagen tot $gebeurtenis.</center>";

Als je een kader wil kan je er <div style="border:black solid 1px"> tags rondzetten, of er een tabel van maken. Als je in je echo-string gebruik wil maken van aanhalingstekens, moet je die escapen (er een backslash voorzetten): \", anders denkt php dat de string gedaan is, en krijg je errors...

(bij echo zijn geen haakjes nodig)
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Re: Echo in php centreren.
« Reactie #2 Gepost op: 19 december 2008, 13:22:48 »
Ik probeer er een stiplijn rond te maken, maar het geeft een Parse error: parse error, unexpected.
 ;D ?
<div style="border-width: 2px;  border-style: dotted; border-color: red; "> echo "<center>Nog ".(int)((mktime (0,0,0,$maand,($dag+1),$jaar)-time(void))/86400)."dagen tot $gebeurtenis.</center>";</div>
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Echo in php centreren.
« Reactie #3 Gepost op: 19 december 2008, 14:21:54 »
Dit is ook geen goede php-code. Wat er moet staan is het volgende:
<div> wordt niet herkend door php, vandaar de parse error.

echo
"<center><div style=\"border-width:
2px;  border-style: dotted; border-color: red; \"> Nog ".(int)((mktime
(0,0,0,$maand,($dag+1),$jaar)-time(void))/86400)."dagen tot
$gebeurtenis.</div></center>";
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: Echo in php centreren.
« Reactie #4 Gepost op: 19 december 2008, 17:32:23 »
De <center> tag is deprecated. Verwijder ze en voeg dan meteen text-align: center; toe aan je style ;). Of als het het kader zelf is dat gecentreerd moet staan, een div errond met style="width: 100%; text-align:center".

Ik zou ook php beperken tot kleine snippets om aanpassingen eenvoudiger te maken. Bijvoorbeeld het volgende:
<?php
 $dag 
01;
 
$maand 01;
 
$jaar 2007;
 
$gebeurtenis "een nieuw jaar";
 
$dagen = (int)((mktime (000$maand, ($dag+1), $jaar) - time()) / 86400);
?>

<div width="100%; text-align: center;">
 <div style="border-width: 2px; border-style: dotted; border-color:red;">
  <?php echo "Nog $dagen dagen tot $gebeurtenis."?>
 </div>
</div>

De time(void) kan je vervangen door time(). Void betekent immers leeg.
Die (int) voorraan hoort daar eigenlijk niet te staan, het is een prutsmanier om van een resultaat met mogelijks decimalen een int (geheel) te maken. Beters is een functie als floor(), ceil() of round() voor respectievelijk afronden naar beneden, naar boven of naar de dichtstbijzijnde waarde.

Ha, en de code-tag van het forum zou layout moeten behouden ipv te gaan wrappen - misschien is er een aanpassing gebeurd? :P Enorm vervelend in elk geval.

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Re: Echo in php centreren.
« Reactie #5 Gepost op: 19 december 2008, 18:27:48 »
Hallo Firebirdy, ik krijg het niet aan het werk.
Fout:
Citaat
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/www/..

Op deze lijn:
Citaat
<?php echo "Nog $dagen dagen tot $gebeurtenis."<font color="#006600">;?>

Dank aan ieder.
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Echo in php centreren.
« Reactie #6 Gepost op: 19 december 2008, 18:33:51 »
Er is een font-tag tussen geslopen, die absoluut niet binnen de <?php ?> mag staan. Je lijn moet dit zijn:
Citaat
<?php echo "Nog $dagen dagen tot $gebeurtenis.";?>

btw: de <font>-tag is ook deprecated, je moet hier ook het style-attribuut gebruiken.
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: Echo in php centreren.
« Reactie #7 Gepost op: 20 december 2008, 00:54:47 »
Bij mij verschijnt die font-tag niet - zoals ik zei, er is wat serieus mis met de code-tag van het forum (die gebruikt <font> voor syntaxkleuring) :).

Zonder tag:

<?php
 $dag = 01;
 $maand = 01;
 $jaar = 2007;
 $gebeurtenis = "een nieuw jaar";
 $dagen = (int)((mktime (0, 0, 0, $maand, ($dag+1), $jaar) - time()) / 86400);
?>
<div width="100%; text-align:
center;">
 <div style="border-width: 2px;
border-style: dotted; border-color:red;">
  <?php echo "$dagen dagen tot $gebeurtenis."; ?>
 </div>
</div>

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Re: Echo in php centreren.
« Reactie #8 Gepost op: 20 december 2008, 08:13:20 »
Citaat
er is wat serieus mis met de code-tag van het forum
:-[ Die forums he? ha ha. Ik heb van alles zitten uitproberen, om te kijken wat het doet. Een paar extra reepjes ram in mijn hoofd zou deze fouten kunnen voorkomen, maar tja..   ;D

Citaat
<div width="100%; text-align:
center;">
 <div style="border-width: 2px;
border-style: dotted; border-color:red;">
Dit doet niet wat ik graag zou hebben, het centreert niet en ik kan de kader niet inkorten (=70% lukt niet).
Als ik de tekst-alin tag bij dat style-ding zet, dan werkt het centreren wel. Nu wil ik graag de kader nog kunnen aanpassen aan de tekst en de tekst een kleur geven.

Groeten en dank.
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Echo in php centreren.
« Reactie #9 Gepost op: 20 december 2008, 09:40:27 »
<div width="100%; text-align:
center;"> zou eigenlijk moeten zijn:
<div style="width:100%; text-align:
center;">

Je kan geen text-align zetten in het argument width, dat uitsluitend voor de breedte in te stellen bedoeld is.

in een style argument kan je daarentegen wel width zetten, en indien gewenst in procenten.

om de tekst een kleur te geven vul je bij het style-argrument ook nog font-color:black; in bijvoorbeeld.

Wat bedoel je met de kader aanpassen? Dat hij net rond de tekst staat, of dat hij de hele breedte van de pagina in beslag neemt en dat de tekst binnenin het kader gecentreerd wordt?
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: Echo in php centreren.
« Reactie #10 Gepost op: 20 december 2008, 11:07:06 »
:-[ Die forums he? ha ha. Ik heb van alles zitten uitproberen, om te kijken wat het doet. Een paar extra reepjes ram in mijn hoofd zou deze fouten kunnen voorkomen, maar tja..   ;D
Hoe, heb je hetzelfde voor of niet? :)  'k Heb screenshots ed...

Om een kader te hebben op 70% grootte van de pagina, gecentreerd, met gecentreerde tekst en rand, gebruik je het volgende (en deze keer herlees'k  :P):

<div style="width: 70%; margin: auto; border: 2px dotted red; text-align: center;">
Tekst hier
</div>

margin: auto toevoegen verplicht de browser om dezelfde marge te nemen voor links en rechts => centreren. De 3 aparte statements van border van eerder kan je combineren in één. Text-align voor het aligneren van de tekst binnenin de div.

Offline Moo

  • Ambassadeur
  • *****
  • Berichten: 1.165
  • Geslacht: Man
  • Waar het hart van vol is, loopt de tekst van over.
Re: Echo in php centreren.
« Reactie #11 Gepost op: 20 december 2008, 16:47:17 »
Citaat
Hoe, heb je hetzelfde voor of niet?
Ik denk/dacht dat het om mijn fout ging, ik had namelijk die tekstkleur-code geplaatst, omdat het niet werkte heb ik wat gespeeld met de plaats, nadien vergeten dat ik dat deed en dat komt natuurlijk niet zo goed over.

Citaat
Dat hij net rond de tekst staat, of dat hij de hele breedte van de pagina in beslag neemt en dat de tekst binnenin het kader gecentreerd wordt?

Kijk op de foto hoe het nu is, ik wil het graag van dezelfde afmeting als de rest. Maar als u het ziet zitten, dan ben ik wel geïnteresseerd in de verschillende technieken.
ASRock P43 Pro/USB3, Intel 2 Quad cpu Q9550 2.83GHz, 2840 MHz, NVIDIA GeForce GTS 450, Win7 oem 64bit pre NL, Realtek, HD:1tb, 4 Gb DDR3, KIS, Firefox, Ms-Outlook 2007, Telenet

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: Echo in php centreren.
« Reactie #12 Gepost op: 20 december 2008, 16:56:54 »
Moo, zie m'n laatste post voor hoe je dat moet doen. Het ziet er wel kleiner dan 70% breedte uit dus misschien moet je dat nog aanpassen :).

Offline fearbear

  • Ambassadeur
  • *****
  • Berichten: 1.154
  • Geslacht: Man
  • Kennis = macht. macht ~ verantwoordelijkheid
Re: Echo in php centreren.
« Reactie #13 Gepost op: 20 december 2008, 17:02:28 »
Aangezien je hierboven 70% vermeldde, ga ik er nu even vanuit dat dat de breedte "van de rest" is:

Citaat
<div style="width:100%;text-align:center;">
<div style="width:70%; border:5px dotted red;">
hier je php code
</div>
<div style="width:70%">
Hier de overige inhoud, zonder rand, maar wel even breed.
</div>
</div>

Ik heb dus een div gemaakt die de hele breedte van de pagina inneemt, maar onzichtbaar is omdat ze geen rand heeft. In die div zit een tweede, die een breedte van 70% heeft, en die heeft wel een rand.

De eerste div, met een breedte van 100% dient enkel maar om ervoor te zorgen dat de tweede div (van 70%) in het midden staat.

Naast die aanpak heb je ook nog die van firebirdy: gewoon margin:auto toevoegen:
Citaat
<div style="margin:auto; text-align:center; border: 5px dotted red">
Hier je tekst
</div>
GeForce 7900 GS, Windows XP, Prof, SP2, EN, Intel(R) Core(TM)2 CPU          6400  @ 2.13GHz, 2045 MB RAM, HDD:312 GB, NTFS, AntiVir antivirus, ZoneAlarm Firewall, Firefox 2.0

 


www.combell.com