Witruimte vóór en na value

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

13/12/2020 13:18:54
Quote Anchor link
Goedemiddag,

Ik wil graag een enkele spatie vóór en na een value en kan dit op deze manieren doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$something = ' '.$value.' ';


Of:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$something = ' '.$value.' ';


Kan optie 2 fouten in het "lezen" van de PHP veroorzaken, of is dit compleet veilig zo? Just curious.

Guido
Gewijzigd op 13/12/2020 13:19:19 door Guido -
 
PHP hulp

PHP hulp

01/08/2021 10:22:00
 
Ward van der Put
Moderator

Ward van der Put

13/12/2020 13:35:25
Quote Anchor link
Geen van beide: gebruik bij voorkeur CSS voor de presentatie en HTML alleen voor de inhoud.
 
Guido  -

Guido -

13/12/2020 15:18:29
Quote Anchor link
Hoi,

Zo kun je het ook bekijken. Maar dan moet de value wel te benaderen zijn. Dus eigen class hebben, of in een span oid zitten.

Guido
Gewijzigd op 13/12/2020 17:12:28 door Guido -
 
Ad Fundum

Ad Fundum

13/12/2020 19:53:45
Quote Anchor link
Wat bedoel je met "Kan optie 2 fouten in het "lezen" van de PHP veroorzaken" ?
 
- Ariën -
Beheerder

- Ariën -

13/12/2020 20:46:35
Quote Anchor link
Ik ben er ook benieuwd naar, maar als er een fout in de code zit, zou dit moeten resulteren in een 'Parse error'.
 
Ozzie PHP

Ozzie PHP

13/12/2020 23:38:12
Quote Anchor link
In principe wil je zoveel mogelijk 'ruwe' waarden hebben. Ik denk dat Ward dat bedoelt. Bij het daadwerkelijk weergeven van die waarde kun je dan de spaties toevoegen.

Dus in plaats van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$product_name
= ' ' . $value . ' ';

?>

Doe je:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<h1>Omschrijving</h1>
<p>Het product <?php echo $product_name; ?> is echt geweldig!</p>

De variabele heeft dus de waarde zonder spaties, en bij het weergeven van de variabele zet je er in de html spaties omheen.

Soms, wanneer de spatie echt een onderdeel van de waarde is, kun je de spatie wél in php toevoegen. Bij voorbeeld bij het samenstellen van een volledige naam. De spatie is dan een essentieel onderdeel van de string.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$first_name
= 'Pietje';
$last_name  = 'Puk';
$full_name  = $first_name . ' ' . $last_name;

?>
 
Ward van der Put
Moderator

Ward van der Put

14/12/2020 08:31:55
Quote Anchor link
En uitzondering is bijvoorbeeld ook het bijeenhouden van een valutasymbool en een bedrag:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$unitPrice
= '&euro;&nbsp;' . $amount;
?>


En zelfs dat kun je in CSS oplossen...
 
Formal Oracle

Formal Oracle

28/05/2021 06:42:38
Quote Anchor link
Ward van der Put op 14/12/2020 08:31:55:
En uitzondering is bijvoorbeeld ook het bijeenhouden van een valutasymbool en een bedrag: mcdvoice

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$unitPrice
= '&euro;&nbsp;' . $amount;
?>


En zelfs dat kun je in CSS oplossen...


Thanks for Giving us Such a Great Information
Gewijzigd op 28/05/2021 07:13:00 door Formal Oracle
 
Ad Fundum

Ad Fundum

28/05/2021 08:44:03
Quote Anchor link
Bij het parsen van HTML maakt het zeker verschil of er witruimte is tussen verschillende elementen.
Neem bijvoorbeeld dit voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<!-- netjes inspringen voor de opmaak -->
  <ul class="dropdownmenu">
    <li><a href="?1">Optie 1</a></li>
    <li><a href="?2">Optie 2</a></li>
  </ul>

Meerdere spaties en regeleinden worden behandeld als een enkele spatie.
Het resultaat is dat er tussen de verschillende <li>-elementen een spatie zit.
Dat wordt vervelend wanneer de items naast elkaar komen met CSS, dan zit die spatie wel eens in de weg.

De HTML broncode hoeft alleen maar leesbaar te zijn voor de browser.
Daarom maak ik gebruik van DOMDocument om HTML5 pagina's te tekenen.
Daarna kan je de (deel)pagina in één keer printen met $dom->saveHTML($dom->documentElement); // fixt encoding
De HTML komt er dan automatisch zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<ul class="dropdownmenu"><li><a href="?1">Optie 1</a></li><li><a href="?2">Optie 2</a></li></ul>


Wat betreft spaties voor opmaak, zoals monetaire getallen, zou ik UTF-8 ook in CSS gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@charset "UTF-8";
.geld {
  position: relative; /* eigen stacking context */
  display: inline-block;  /* voor vaste breedte */
  width: 6em; /* breedte voor kleine bedragen */
  text-align: right;  /* voor onder elkaar uitlijnen */
  font-family: monospace;  /* precies uitlijnen*/
}
.geld:before {
  content: ' ';  /* <-- euro teken (Unicode U+20ac) + spatie */
  position: absolute;
  top: 0;
  left: 0;
}

En dan in de HTML:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<p>
<span class="geld">123,00</span><br/>
<span class="geld">78,00</span><br/>
<span class="geld">2.345,00</span>
</p>
Gewijzigd op 28/05/2021 08:56:16 door Ad Fundum
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.