<?php
function path( $page , $id , $raw = false ) {
if ( ! $raw ) {
$id = urlencode ( $id ) ; // I do need to get rid of that, that is why I wanted to use the raw-filter, simulated by the third argument. }
switch ( $page ) {
case 'article_edit' :
return "'article/" . $id . "/edit'" ;
break ;
case 'comment_add' :
return "'comment/" . $id . "/add'" ;
break ;
}
}
?>
<script>
// this is not working, as $id gets encoded.
for(var i=1; i<=3; i++){
document.write(<?= path( 'article_edit' , "' + i + '" ) ?> + '<br>\n');
}
// this is working, due to the use of the raw-filter simulation
for(var i=1; i<=3; i++){
document.write(<?= path( 'article_edit' , "' + i + '" , true ) ?> + '<br>\n');
}
</script>
PD9waHAKZnVuY3Rpb24gcGF0aCgkcGFnZSwgJGlkLCAkcmF3ID0gZmFsc2UpewoJCglpZighJHJhdyl7CgkJJGlkID0gdXJsZW5jb2RlKCRpZCk7IC8vIEkgZG8gbmVlZCB0byBnZXQgcmlkIG9mIHRoYXQsIHRoYXQgaXMgd2h5IEkgd2FudGVkIHRvIHVzZSB0aGUgcmF3LWZpbHRlciwgc2ltdWxhdGVkIGJ5IHRoZSB0aGlyZCBhcmd1bWVudC4KCX0KCQoJc3dpdGNoKCRwYWdlKXsKCQljYXNlICdhcnRpY2xlX2VkaXQnOgoJCQlyZXR1cm4gIidhcnRpY2xlLyIgLiAkaWQgLiAiL2VkaXQnIjsKCQlicmVhazsKCQljYXNlICdjb21tZW50X2FkZCc6CgkJCXJldHVybiAiJ2NvbW1lbnQvIiAuICRpZCAuICIvYWRkJyI7CgkJYnJlYWs7Cgl9CgkKfQo/Pgo8c2NyaXB0PgoJLy8gdGhpcyBpcyBub3Qgd29ya2luZywgYXMgJGlkIGdldHMgZW5jb2RlZC4KCWZvcih2YXIgaT0xOyBpPD0zOyBpKyspewoKCQlkb2N1bWVudC53cml0ZSg8Pz0gcGF0aCgnYXJ0aWNsZV9lZGl0JywgIicgKyBpICsgJyIpID8+ICsgJzxicj5cbicpOwoKCX0KCQoJLy8gdGhpcyBpcyB3b3JraW5nLCBkdWUgdG8gdGhlIHVzZSBvZiB0aGUgcmF3LWZpbHRlciBzaW11bGF0aW9uCglmb3IodmFyIGk9MTsgaTw9MzsgaSsrKXsKCgkJZG9jdW1lbnQud3JpdGUoPD89IHBhdGgoJ2FydGljbGVfZWRpdCcsICInICsgaSArICciLCB0cnVlKSA/PiArICc8YnI+XG4nKTsKCgl9Cjwvc2NyaXB0Pg==