[PHP] Overzichtelijke broncode

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo Tweakers,

Ik was vandaag van plan de html-code van mijn php-bestanden wat overzichtelijker te maken. Ik bedoel de code die de bezoeker ziet als hij of zij 'view source' doet als een php document is opgevraagd.

Het probleem zit 'em in mijn luiheid. Ik ben te lui om achter elke regel echo even een \n neer te zetten. Dit lijkt mij ook wat overdreven voor een taal als PHP.

Ik dus aan de slag, als eerste probeerde ik:
PHP:
1
2
3
function echo($input) {
echo $input . "\n";
}

Wat blijkt? echo mag niet herschreven worden of iets dergelijks.

Als tweede schreef ik een functie die er hetzelfde uitziet als de eerste, alleen dan met de naam ikbenlekker. En dan even alle 'echo' met 'ikbenlekker' vervangen in mijn script. Wat blijkt? Deze functie mag niet gebruikt worden op de manier van
PHP:
1
ikbenlekker "hoi";


Op naar php.net, ik vul in 'functions' en zie een lijst met 'zend' artikelen. Toch maar even kijken. Ik kwam vooral een inhoudsopgave tegen, en onderaan een heel vage code.

Ten einde raad. Wat nu? Tweakers :) Nog even gezocht of hier al een topic over bestond.. Maar nee.

[ Voor 8% gewijzigd door Verwijderd op 19-01-2003 13:32 ]


  • ThaDaNo
  • Registratie: Mei 2002
  • Laatst online: 05-04-2023
echo $input . "\n";
hoort gewoon te werken hoor. welke foutmeldnig krijg je precies

  • ludo
  • Registratie: Oktober 2000
  • Laatst online: 26-04-2024
Je zult die functie, net als iedere functie, als volgt moeten aanroepen:
PHP:
1
ikbenlekker("hoi")

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
En als je hem gaan define'en :? www.php.net/define volgensmij mag dat wel (weet het niet zeker)

  • pjonk
  • Registratie: November 2000
  • Laatst online: 08:27
De vraag is waarom wil je de HTML per se netjes hebben?
Het toevoegen van enters is eigenlijk erg overbodig, want het veranderd niks aan uitvoering van de html code door de browser.

Een \n achter elke regel toevoegen is leuk, maar je zou ook je html moeten indenten en op de nodige plaatsen \t (tabs) toevoegen.

Volgens mij zijn er trouwens ook proggies die onoverzichtelijke html weer netjes kunnen opmaken, maar dit gebeurt dan client side.

Toen * pjonk nog statische HTML pages maakte indente ie alles wel heel netjes

It’s nice to be important but it’s more important to be nice


Verwijderd

Topicstarter
Ja ik deed tot voor kort ook zonder die achterlijke \n achter de echo regels... Maar iemand heeft mij opdracht gegeven mijn code overzichtelijk te maken, en dat wil ik graag eenvoudig oplossen. echo $aap . "\n"; is weer teveel werk om dat voor al me echo commands te doen.

Ik zal eens proberen echo te definen. Bedankt. Ik laat nog weten of dat het was ;)

Verwijderd

\r \n ook nog eens

Verwijderd

Topicstarter
Ach ja.... Had ik wel aan gedacht. MAar ik wou niet onnodig verwarring schoppen. Wel gebeurd dus..

Volgens mij kun je met define alleen constanten behandelen? En geen functies... ? :S

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Verwijderd schreef op 19 December 2002 @ 21:14:
Ach ja.... Had ik wel aan gedacht. MAar ik wou niet onnodig verwarring schoppen. Wel gebeurd dus..

Volgens mij kun je met define alleen constanten behandelen? En geen functies... ? :S
Klopt inderdaad, heb het net gezien :/ Maak anders even een PHP script, dat andere scripts inlaadt en met een regex bewerkt :) Zo kun je snel al je scripts netter maken :)

Verwijderd

Topicstarter
Snel snel snel... Het gaat hier om 100en bestanden ;-) Is het zeker dat echo niet opnieuw te schrijven is?!?!?!?!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 18-09 20:50
Je kunt natuurlijk ook ff de source van php downloaden en je eigen functies toevoegen. Door de compiler heen halen en done. Zo kun je zelf echo veranderen of zelf iets dergelijks maken.

Verwijderd

Waarom gebruik je dit niet (als je lappen html code hebt)

$html = <<< html
AL je html code hierin zoals je gewend bent, (je kan zelfs php variabelen hierin kwijt)
<a href="test">test</a>
<br>
<table ....>

</table>
html;

en later als je wilt printen
echo $html;

Verwijderd

Topicstarter
omdat alles dan in een variabele moet worden opgeslagen? En de source van php is niet mogelijk.. Mijn webhost staat dat niet toe. Is het ook mogelijk om alle output van een script op te vangen en dan op het laatst wat \n erin te stoppen?

Verwijderd

uhm.. je kan ook gewoon in je html code als je iets wilt uitprinten even uit je PHP 'ontsnappen' voorbeeld:

PHP:
1
2
3
4
5
6
7
8
<?
$a = "blaat";
$b = "blaaaah";
?>
<a href="<?=$a ?>"><?=$b ?></a>
<?
# en hier ga je gewoon weer verder met je php code
?>


btw je kan dit ook in een while lus gebruiken enzo.

Maar ik neem toch aan dat meer mensen dit weten en gebruiken?

Maar ff back ontopic, je kan denk ik beter een shell script maken ofzo dat aan al je echo's een \n plakt. Kan niet zo moeilijk zijn. en jah.. anders gewoon die html src zo laten. Het boeit toch niets.

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
als je elke aanroep van echo wilt wijzigen, kan dit met elke geavanceerde editor geautomatiseerd worden.
ik weet niet hoeveel tijd je erin wilt steken; het netste is natuurlijk om met bij voorbeeld een class 'output' je output op te bouwen en die pas op het laatst netjes geïndent te flushen.
helemaal mooi wordt het als je je layout scheidt van de inhoudelijke opbouw van een pagina. dit kan met een kant-en-klaar oplossing (templates) of met een degelijke opbouw van je scripts in lagen en functies.
dit zijn eigenlijk geen zaken die je op het laatst nog even wijzigt; het helpt om voor je begint een goed plan op zetten. verder vind ik het zelf prettig om zo abstract mogelijk te beginnen; het is aanlokkelijk om meteen te coden, maar het is makkelijker om je scripts steeds iets te concretiseren, dan later te moeten abstraheren.

Pas de replâtrage, la structure est pourrie.


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Zowiezo zit je al fout met echo's. Als je nou gebruik zou maken van een template engine, zou je nu geen problemen hebben.... (athans, dan zouden de problemen op een makkelijkere plaats zijn ;) )

Acties:
  • 0 Henk 'm!

Verwijderd

Mjah hoe dan ook, ik denk dat je heel veel werk krijgt. Dit is iets wat je eigenlijk van het begin af aan had moeten doen. En een template engine implementeren dat had al helemaal aan het begin moeten doen, dan moet je nml heel veel van je code opnieuw maken. Ik zou dus gaan voor OF een shell script of gewoon alles laten zoals het is. Dan heb je ook niet het probleem dat iemand je HTML jat ;)

Acties:
  • 0 Henk 'm!

Verwijderd

een andere oplossing is met outputbuffering (ob_start, ob_get_contents etc) je html-code in een variable mikken en vervolgens met een regexp de code netjes indenten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm........ Misschien moet ik dan toch gewoon de functie ikbenlekker() gebruiken en dan even ( en ) erbij gebruiken.. Da's nog wel het snelst dan. Maar toch bedankt.. Ook raar dat je functies niet kunt herschrijven eigenlijk :?
Pagina: 1