| Autor | Zpráva | ||
|---|---|---|---|
| gladiator Profil * |
#1 · Zasláno: 1. 8. 2013, 13:59:24 · Upravil/a: gladiator
Ahoj
jak bych odstranil pomoci regularniho vyrazu jednoratkovy komentar mezi tagy <script type=""> //komentar neco //komentar </script>? potrebuji aby to mazalo jenom mezi <script> |
||
| Radek9 Profil |
#2 · Zasláno: 1. 8. 2013, 14:14:51
gladiator:
To tak jednoduše nejde. Vzhledem k tomu, že komentáře nemusí být jen na začátku řádku a že se ti dvě lomítka mohou objevit klidně i ve stringu. Na tohle by byl spíš potřeba nějaký parser. |
||
| gladiator Profil * |
#3 · Zasláno: 1. 8. 2013, 14:18:49
a slo by: preg_replace("~\r\n~","",$xx); udelat tak aby to nemazalo radky mezi <script></script>?
|
||
| peta Profil |
Pro JS
html koment odmazavam takhle (pro me ucely vyhovujici) str = str.replace(/<!--[\n\w\W]*?-->/gi,""); //comment /\/\/.*$/g (mozna gm)
Na jednom foru pisi toto var cleanCode = function cleanCode(input) {
// Remove special characters:
return input.replace(/\/\/[^"'].*?\n/g, '') /* //comments, but ignore a "//" if there is a quote after it */
.replace(/\n/g, '') /* Leftover newlines */
.replace(/\r/g, ''); /* Carriage returns */
};Pro PHP, co jsi nasel googlem? google = php remove js comment http://upshots.org/javascript/javascript-regexp-to-remove-comments $text = preg_replace('!/\*.*?\*/!s', '', $text);
$text = preg_replace('/\n\s*\n/', "\n", $text);--- $string = preg_replace('/(\s+)\/\*([^\/]*)\*\/(\s+)/s', "\n", $string);--- Pak tu pouzivaji parser <?
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
} else {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
function strip_comments($source) {
$tokens = token_get_all($source);
$ret = "";
foreach ($tokens as $token) {
if (is_string($token)) {
$ret.= $token;
} else {
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT: // we've defined this
case T_DOC_COMMENT: // and this
break;
default:
$ret.= $text;
break;
}
}
}
return trim(str_replace(array('<?','?>'),array('',''),$ret));
}
?>
Now using this function 'strip_comments' for passing code contained in some variable:
<?
$code = "
<?php
/* this is comment */
// this is also a comment
# me too, am also comment
echo "And I am some code...";
?>";
$code = strip_comments($code);
echo htmlspecialchars($code);
?>
Will result output as
<?
echo "And I am some code...";
?> |
||
|
Časová prodleva: 12 let
|
|||
0