Je cherche le moyen de compter le nombre de ligne pour un forum, dans un code
Code : Tout sélectionner
Exemples:
Code : Tout sélectionner
1. Ligne 1
2. Ligne 2
3. Ligne 3
...
Cordialement
Code : Tout sélectionner
Code : Tout sélectionner
1. Ligne 1
2. Ligne 2
3. Ligne 3
...
<?php
function parseZCode($content) {
// Parsage des balises
$zcode = array(
'`<gras>(.+)<\/gras>`isU',
'`<italique>(.+)<\/italique>`isU',
'`<souligne>(.+)<\/souligne>`isU',
'`<lien>(.+)<\/lien>`isU',
'`<lien url="(.+)">(.+)<\/lien>`isU',
'`<image>(.+)<\/image>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<code>(.+)<\/code>`isU',
'`<code type="(.+)">(.+)<\/code>`isU',
'`<secret>(.+)<\/secret>`isU',
'`<taille valeur="(.+)">(.+)</taille>`isU',
'`<couleur nom="(.+)">(.+)<\/couleur>`isU',
'`<police nom="(.+)">(.+)<\/police>`isU',
'`<liste><br(?: /)>(.+)`isU',
'`<\/liste>(<br(?: /)>)`isU',
'`<puce>(.+)<\/puce><br(?: /)>`isU'
);
$html = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<a href="$1">$1</a>',
'<a href="$1" title="$2">$2</a>',
'<img src="$1" alt="Image" />',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="code">Code : </span><div class="code2"><code>$1</code></div>',
'<span class="code">Code $1: </span><div class="code2"><code>$2</code></div>',
'<span class="spoiler">Secret <a href="#" onclick="switch_spoiler_hidden(this); return false;">(cliquez pour afficher)</a></span><div class="spoiler2" return false;"><div class="spoiler3">$1</div></div></span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<ul>$1',
'</ul>',
'<li>$1</li>'
);
// $content = htmlspecialchars_decode($content);
$content = htmlspecialchars($content);
$nb_lignes = substr_count($content, "<br />");
$content = nl2br($content);
$content = preg_replace($zcode, $html, $content);
// parsage des smilies
$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':snif:', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
$smiliesUrl = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'snif.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
$smiliesPath = "images/smilies/";
for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
}
// Rtours à la ligne
return $content;
}
?>
Cordialement
ah vi effectivement je me suis basé sur le code du tuto dont tu fournis le lien plus hautJ'utilise nl2brvoici mon code: (j'aurais dû le mettre plus tot Oo)
// Rtours à la ligne
$content = preg_replace('`\n`isU', '<br />', $content);
revenons a nos montons. <code class="code2">$1</code>
par exemple<?php
function parseZCode($content) {
// Parsage des balises
$zcode = array(
'`<gras>(.+)<\/gras>`isU',
'`<italique>(.+)<\/italique>`isU',
'`<souligne>(.+)<\/souligne>`isU',
'`<lien>(.+)<\/lien>`isU',
'`<lien url="(.+)">(.+)<\/lien>`isU',
'`<image>(.+)<\/image>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<secret>(.+)<\/secret>`isU',
'`<taille valeur="(.+)">(.+)</taille>`isU',
'`<couleur nom="(.+)">(.+)<\/couleur>`isU',
'`<police nom="(.+)">(.+)<\/police>`isU',
'`<liste><br(?: /)>(.+)`isU',
'`<\/liste>(<br(?: /)>)`isU',
'`<puce>(.+)<\/puce><br(?: /)>`isU'
);
$html = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<a href="$1">$1</a>',
'<a href="$1" title="$2">$2</a>',
'<img src="$1" alt="Image" />',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="spoiler">Secret <a href="#" onclick="switch_spoiler_hidden(this); return false;">(cliquez pour afficher)</a></span><div class="spoiler2" return false;"><div class="spoiler3">$1</div></div></span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<ul>$1',
'</ul>',
'<li>$1</li>'
);
// $content = htmlspecialchars_decode($content);
$content = htmlspecialchars($content);
$nb_lignes = substr_count($content, "<br />");
$content = nl2br($content);
$content = preg_replace($zcode, $html, $content);
$pattern = '`<code>(.+)<\/code>`isU';
$content = preg_replace_callback($pattern, function($matches)
{
$code = $matches[1];
return '<span class="code">Code : </span><code class="code2">' . $code . '</code>';
}, $content);
// parsage des smilies
$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':snif:', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
$smiliesUrl = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'snif.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
$smiliesPath = "images/smilies/";
for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
}
// Rtours à la ligne
return $content;
}
?>
Mais je ne sais pas quoi faire d'autre Oo<?php
if (!@include '../geshi.php') {
if (!@include 'geshi.php') {
die('Could not find geshi.php - make sure it is in your include path!');
} else {
$path = './';
}
} else {
$path = '../';
}
function parseZCode($content) {
// Parsage des balises
$zcode = array(
'`<gras>(.+)<\/gras>`isU',
'`<italique>(.+)<\/italique>`isU',
'`<souligne>(.+)<\/souligne>`isU',
'`<lien>(.+)<\/lien>`isU',
'`<lien url="(.+)">(.+)<\/lien>`isU',
'`<image>(.+)<\/image>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<secret>(.+)<\/secret>`isU',
'`<taille valeur="(.+)">(.+)</taille>`isU',
'`<couleur nom="(.+)">(.+)<\/couleur>`isU',
'`<police nom="(.+)">(.+)<\/police>`isU',
'`<liste><br(?: /)>(.+)`isU',
'`<\/liste>(<br(?: /)>)`isU',
'`<puce>(.+)<\/puce><br(?: /)>`isU'
);
$html = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<a href="$1">$1</a>',
'<a href="$1" title="$2">$2</a>',
'<img src="$1" alt="Image" />',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="spoiler">Secret <a href="#" onclick="switch_spoiler_hidden(this); return false;">(cliquez pour afficher)</a></span><div class="spoiler2" return false;"><div class="spoiler3">$1</div></div></span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<ul>$1',
'</ul>',
'<li>$1</li>'
);
// $content = htmlspecialchars_decode($content);
$content = htmlspecialchars($content);
$content = nl2br($content);
$pattern = '`<code>(.+)<\/code>`isU';
$content = preg_replace_callback($pattern, function($matches)
{
$code = $matches[1];
$type='';
if ( get_magic_quotes_gpc() ) $code = stripslashes($code);
if ( !strlen(trim($code)) )
{
$type = preg_replace('#[^a-zA-Z0-9\-_]#', '', $type);
$code = implode('', @file($path . 'geshi/' . $type . '.php'));
$type = 'php';
}
$geshi = new GeSHi($code, $type);
// Enable line numbers. We want fancy line numbers, and we want every 5th line number to be fancy
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
$geshi->get_stylesheet();
return '<div class="codebox"><span class="code">Code : </span><div class="code2"><code>' . $geshi->parse_code() . '</code></div></div>';
}, $content);
$pattern = '`<code type="(.+)">(.+)<\/code>`isU';
$content = preg_replace_callback($pattern, function($matches)
{
$type = $matches[1];
$code = $matches[2];
if ( get_magic_quotes_gpc() ) $code = stripslashes($code);
if ( !strlen(trim($code)) )
{
$type = preg_replace('#[^a-zA-Z0-9\-_]#', '', $type);
$code = implode('', @file($path . 'geshi/' . $type . '.php'));
$type = 'php';
}
$geshi = new GeSHi($code, $type);
// Enable line numbers. We want fancy line numbers, and we want every 5th line number to be fancy
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
$geshi->get_stylesheet();
return '<div class="codebox"><span class="code">Code ' . $type . ': </span><div class="code2"><code>' . $geshi->parse_code() . '</code></div></div>';
}, $content);
$content = preg_replace($zcode, $html, $content);
// parsage des smilies
$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':snif:', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
$smiliesUrl = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'snif.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
$smiliesPath = "images/smilies/";
for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
}
// Rtours à la ligne
return $content;
}
?>
Et une image pour que vous compreniez l’erreur:
Code : Tout sélectionner
<?php
if (!@include '../geshi.php') {
if (!@include 'geshi.php') {
die('Could not find geshi.php - make sure it is in your include path!');
} else {
$path = './';
}
} else {
$path = '../';
}
function parseZCode($content) {
// Parsage des balises
$zcode = array(
'`<gras>(.+)<\/gras>`isU',
'`<italique>(.+)<\/italique>`isU',
'`<souligne>(.+)<\/souligne>`isU',
'`<lien>(.+)<\/lien>`isU',
'`<lien url="(.+)">(.+)<\/lien>`isU',
'`<image>(.+)<\/image>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation nom="(.+)">(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<citation>(.+)<\/citation>`isU',
'`<secret>(.+)<\/secret>`isU',
'`<taille valeur="(.+)">(.+)</taille>`isU',
'`<couleur nom="(.+)">(.+)<\/couleur>`isU',
'`<police nom="(.+)">(.+)<\/police>`isU',
'`<liste><br(?: /)>(.+)`isU',
'`<\/liste>(<br(?: /)>)`isU',
'`<puce>(.+)<\/puce><br(?: /)>`isU',
'`<br(?: /)>`isU'
);
$html = array(
'<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<a href="$1">$1</a>',
'<a href="$1" title="$2">$2</a>',
'<img src="$1" alt="Image" />',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation : $1</span><div class="citation2">$2</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="citation">Citation</span><div class="citation2">$1</div>',
'<span class="spoiler">Secret <a href="#" onclick="switch_spoiler_hidden(this); return false;">(cliquez pour afficher)</a></span><div class="spoiler2" return false;"><div class="spoiler3">$1</div></div></span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<span class="$1">$2</span>',
'<ul>$1',
'</ul>',
'<li>$1</li>',
''
);
// $content = htmlspecialchars_decode($content);
$content = htmlspecialchars($content);
$content = nl2br($content);
$pattern = '`<code>(.+)<\/code>`isU';
$content = preg_replace_callback($pattern, function($matches)
{
$code = $matches[1];
// $code = htmlspecialchars_decode($code);
$type='';
if ( get_magic_quotes_gpc() ) $code = stripslashes($code);
if ( !strlen(trim($code)) )
{
$type = preg_replace('#[^a-zA-Z0-9\-_]#', '', $type);
$code = implode('', @file($path . 'geshi/' . $type . '.php'));
$type = 'php';
}
$geshi = new GeSHi($code, $type);
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
$geshi->set_overall_style('color: #000066; background-color: #f0f0f0;', true);
$geshi->set_line_style(' color: #003030;', 'font-weight: bold; color: #006060;', true);
$geshi->set_code_style('color: #000020;', 'color: #000020;');
return '<div class="codebox"><span class="code">Code : </span><div class="code2"><code>' . $geshi->parse_code() . '</code></div></div>';
}, $content);
$pattern = '`<code type="(.+)">(.+)<\/code>`isU';
$content = preg_replace_callback($pattern, function($matches)
{
$type = $matches[1];
$code = $matches[2];
$code = htmlspecialchars_decode($code);
if ( get_magic_quotes_gpc() ) $code = stripslashes($code);
if ( !strlen(trim($code)) )
{
$type = preg_replace('#[^a-zA-Z0-9\-_]#', '', $type);
$code = implode('', @file($path . 'geshi/' . $type . '.php'));
$type = 'php';
}
$geshi = new GeSHi($code, $type);
$geshi->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS, 5);
$geshi->set_overall_style('color: #000066; background-color: #f0f0f0;', true);
$geshi->set_line_style(' color: #003030;', 'font-weight: bold; color: #006060;', true);
$geshi->set_code_style('color: #000020;', 'color: #000020;');
return '<div class="codebox"><span class="code">Code ' . $type . ': </span><div class="code2"><code>' . $geshi->parse_code() . '</code></div></div>';
}, $content);
$content = preg_replace($zcode, $html, $content);
// parsage des smilies
$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':snif:', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
$smiliesUrl = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'snif.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
$smiliesPath = "images/smilies/";
for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
}
// Rtours à la ligne
return $content;
}
?>