Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[php&js] gedeeld bestand met variabelen

Pagina: 1
Acties:

  • wilcodl
  • Registratie: September 2004
  • Laatst online: 24-06 21:35
Hallo,
ik ben bezig met een systeem voor een gastenboek waarbij je tijdens het typen van het bericht een voorbeeld daarvan kan zien. Nu wil ik de replace regels in één bestand zetten. Dit bestand moet dus door PHP en JS aangesproken worden. Hoe realiseer ik dit?

De opmaak van de code van JS en PHP is bijna identiek, waar ik tegenaan loop is dat bij js er geen aanhalingstekens om de pattern heen mogen staan en dit bij PHP verplicht is.

Dit zijn de JS en PHP codes van de patterns.

JavaScript:
1
2
3
// convert [img]image_link[/img]
$pattern[0] = /\[img\](.*?)\[\/img\]/gi;
$replace[0] = "<a href=\"$1\" target=\"_blank\">afbeelding</a>";


PHP:
1
2
3
// convert [img]image_link[/img]
$pattern[] = '/\[img\](.*?)\[\/img\]/i';
$replace[] = "<a href=\"$1\" target=\"_blank\">afbeelding</a>";

  • SIMPY.be
  • Registratie: April 2003
  • Laatst online: 29-07 09:58
door php in uw code laten zetten, en in js de functie 'eval' laten oproepen?

  • wilcodl
  • Registratie: September 2004
  • Laatst online: 24-06 21:35
Ik heb nu dit, en het werkt in PHP. Alleen hoe krijg in in JS de haakjes om de waarde van $pattern[0] weg? Met int($pattern[0]) werkt dit niet. (Of hoe krijg ik in PHP de haakjes om de waarde van $pattern[0], als ik de haakjes had weggelaten.)

convert.js:
JavaScript:
1
2
3
// convert [img]image_link[/img]
$pattern[0] = "/\[img\](.*?)\[\/img\]/gi";
$replace[0] = "<a href=\"$1\" target=\"_blank\">afbeelding</a>";


index.php:
PHP:
1
2
3
4
5
6
7
<?php
$blaat = file_get_contents("convert.js");

eval($blaat);

echo "<br><br>Replace: ".$replace[1];
?>

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 30-11 11:35

Janoz

Moderator Devschuur®

!litemod

eval is evil... Niet zomaar gebruiken. Daarnaast is er een veel simpelere oplossing:

PHP:
1
2
3
4
5
<?php 
// convert [img]image_link[/img] 
$pattern[] = '/\[img\](.*?)\[\/img\]/i'; 
$replace[] = "<a href=\"$1\" target=\"_blank\">afbeelding</a>"; 
?>


javascript:
PHP:
1
2
3
4
5
<?
include('patterndefs.php');
var pattern = <?=$pattern[0]?>;
var replace = "<?=$replace[0]?>";
?>

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • wilcodl
  • Registratie: September 2004
  • Laatst online: 24-06 21:35
Dat zou inderdaad een makkelijke oplossing zijn. Alleen het nadeel daarvan is dat het js bestand niet kan worden gecached...
Er komen nml nog veel meer patterns in, waardoor het bestand redelijk groot kan worden...

[ Voor 27% gewijzigd door wilcodl op 08-10-2007 22:41 . Reden: verduidelijking ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

wilcodl schreef op maandag 08 oktober 2007 @ 21:52:
Dat zou inderdaad een makkelijke oplossing zijn. Alleen het nadeel daarvan is dat je js bestand niet kan worden gecached...
Er komen nml nog veel meer patterns in, waardoor het bestand redelijk groot kan worden...
Wat belet je om cacheing headers mee te sturen?

Let overigens op dat je bij het echo-en je escaping niet om zeep helpt.

[ Voor 9% gewijzigd door crisp op 08-10-2007 22:36 ]

Intentionally left blank

Pagina: 1