Ich habe keine Ahnung was du machst, aber preg_replace() ist nicht das selbe wie preg_replace_callback().
Problem mit Zeilennummern
Einklappen
X
-
hier die funktionen die ich hab
PHP-Code:function linenum($texto)
{
$text=nl2br($texto);
$counter=1;
$text = explode("<br />", $text);
for($i=0; $i<count($text); $i++)
{
$lines .= $counter . "<br />";
$counter++;
}
$text=implode(" ", $text);
print '<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#A4A4A4" width="5px"></td>
<td bgcolor="#A4A4A4" ><code>' .$lines. '</code></td>
<td bgcolor="#A4A4A4" width="5px"></td>
<td width="5px"></td>
<td><div><code><pre>' .$text. '</pre></code></div></td>
</tr>
</table>';
}
function transcode($str)
{
$str = trim($str);
$str = htmlspecialchars($str);
$str = preg_replace('=\[br\]=Uis', '<br>', $str);
$str = preg_replace('=\[b\](.*)\[/b\]=Uis','<span style="font-weight:bold;">\1</span>',$str);
$str = preg_replace('=\[space\]=Uis',' ',$str);
$str = preg_replace('=\[titel\](.*)\[/titel\]=Uis','<font size="4">\1</font>',$str);
$str = preg_replace('=\[middle\](.*)\[/middle\]=Uis','<center>\1</center>',$str);
$str = preg_replace('=\[hr\]=Uis','<hr color="#008000" size="1">',$str);
$str = preg_replace('=\[i\](.*)\[/i\]=Uis','<span style="font-style:italic;">\1</span>',$str);
$str = preg_replace('=\[u\](.*)\[/u\]=Uis','<span style="text-decoration:underline;">\1</span>',$str);
$str = preg_replace('=\[url\](.*)\[/url\]=Uis','<a href="\1">\1</a>',$str);
$str = preg_replace('#\[url=(.*)\](.*)\[/url\]#Uis','<a href="\1">\2</a>',$str);
$str = preg_replace('|\[quote\](.+)\[/quote\]|isU', '\1',$str);
$str = preg_replace('|\[code\](.+)\[/code\]|isU', '<div class=codescroll><br><pre>\1</pre><br></div>',$str);
$str = preg_replace('=\[img\](.*)\[/img\]=Uis','<center><img src="\1" alt="\1"/></center>',$str);
$str = preg_replace('|\[cpp\](.*)\[/cpp\]|Uise','linenum("\\1")',$str);
//$str = preg_replace('|\[cpp\](.*)\[/cpp\]|Uis','<code><pre>\\1</pre></code>',$str);
return $str;
}
http://www.asajia.de/syntax.php
so solte es aussehen nur mit zeilennummern
http://www.asajia.de/index.php?section=api&tut=1
bin morgen wider da muss arbeitenMehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.
Albert Einstein
Kommentar
-
Soll ich dir das Manual vorlesen? Womit fangen wir denn,
mit http://php.net/preg_replace oder mit http://php.net/preg_replace_callback ?
Kommentar
-
@ onemorenerd witzig: ok bist wohl auf das aus
Beispiel 1506. preg_replace_callback() unter Verwendung einer rekursiven Struktur um gekapselten BB-Code zu verarbeitenMehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.
Albert Einstein
Kommentar
-
Hab den fehler gefunden
PHP-Code:function linenum($texto)
{
$text=nl2br($texto);
$counter=1;
$text = explode("<br />", $text);
for($i=0; $i<count($text); $i++)
{
$lines .= $counter . "<br />";
$counter++;
}
$text=implode(" ", $text);
// und zwar hier hab in der funktion print als ausgabe verwendet stat einen string zu verwenden
//old print '<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
$text ='<br><table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#A4A4A4" width="5px"></td>
<td bgcolor="#A4A4A4" ><code>' .$lines. '</code></td>
<td bgcolor="#A4A4A4" width="5px"></td>
<td width="5px"></td>
<td><div><code><pre>' .$text. '</pre></code></div></td>
</tr>
</table>';
return $text;
}
Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben.
Albert Einstein
Kommentar
-
@Ascharan
Du weisst aber schon, dass ein <br /> nur in HTML zu einer neuen Zeile führt. Im Quelltext des Browsers ist wegen <br /> nix neue Zeile. Warum explodest du nicht am Zeilenumbruch (\r\n oder \n) ?
Ausserdem ergibt dir
Code:ich bin text <br /> und ich auch
Code:ich bin text<br /><br /><br />und ich auch
PHP-Code:$counter=1;
$lines = '';
$text = explode("\r\n", $textto);
foreach($text as $wert){
$lines .= $counter."\t\t".$wert."\r\n";
$counter ++;
}
tobiGutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten
[color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Kommentar
Kommentar