Nie wiem gdzie zrobiłem ten błąd bo trochę już napisałem i... po przeglądnięciu całego pliku z funkcjami nie mam pojęcia co za to odpowiada że aby wyświetlić np :
Cytat
c:\windows
to muszę w kodzie wypisać :
Cytat
c:\\\\windows
zamiast tego jak powinno być czyli :
Cytat
c:\\windows
Według mnie wszystko powinno działać ładnie ale jak tylko dam aby tekst był konwertowany przez BodyCreate() to wtedy wywala mi że chce 4 znaków '\' a nie 2 znaków '\' aby takowy znak w ogóle wyświetlić

Jeżeli ktoś ma chwilkę czasu (chyba dłuższą

) to tu jest przykład i plik z funkcjami :
<?php
include('funkcje.php');
// Tekst :
$body = 'Teraz zobaczymy jak to działa : // komentarz
teraz nowa linia więc już nie komentarz
a plik ten będzie w katalogu : "c:windows" lub : "c:windows"
I TO WSZYSTKO :-)';
// wywołanie funkcji :
?>
A teraz potrzebne funkcje : (plik : funkcje.php)
<?php
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function WinToLin($NapisDoZmiany)
{
''
);
'/'
);
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function WinToISO($NapisDoZmiany)
{
'Ą',
'ą',
'Ś',
'ś',
'Ź',
'ź',
'UWAGA',
'Unit1.cpp',
'Unit1.h',
'Project1.cpp'
);
'ˇ',
'ą',
'Ś',
'ś',
'Ź',
'Ľ',
'<font color=red><b>UWAGA</b></font>',
'<font color=green><b>Unit1.cpp</b></font>',
'<font color=red><b>Unit1.h</b></font>',
'<font color=blue><b>Project1.cpp</b></font>'
);
};
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function WinToCPP($NapisDoZmiany)
{
' ',
' ',
'private',
'public',
'__published',
'asm',
' try',
' try',
'catch',
'__finally',
'classid',
'for(',
'const ',
' if',
' if',
'else',
' int ',
'(int)',
'bool ',
'char',
'float ',
'sizeof',
'struct',
'true',
'false',
'switch(',
'case',
'break;',
'void ',
'new ',
'this',
'delete',
'__fastcall',
'return',
'//-line-'
);
' ',
' ',
'<b>private</b>',
'<b>public</b>',
'<b>__published</b>',
'<b>asm</b>',
'<b> try</b>',
'<b> try</b>',
'<b>catch</b>',
'<b>__finally</b>',
'<b>classid</b>',
'<b>for</b>(',
'<b>const </b>',
'<b> if</b>',
'<b> if</b>',
'<b>else</b>',
'<b> int </b>',
'(<b>int</b>)',
'<b>bool </b>',
'<b>char</b>',
'<b>float </b>',
'<b>sizeof</b>',
'<b>struct</b>',
'<b>true</b>',
'<b>false</b>',
'<b>switch</b>(',
'<b>case </b>',
'<b>break</b>;',
'<b>void </b>',
'<b>new </b>',
'<b>this</b>',
'<b>delete</b>',
'<b>__fastcall</b>',
'<b>return</b>',
'//---------------------------------------------------------------------------'
);
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function IncludeME($NapisDoZmiany, $Znak)
{
if($Znak == 1)
{
return '<font color="#008000">#include "'.$NapisDoZmiany.'"</font>';
}else{
return '<font color="#008000">#include <'.$NapisDoZmiany.'></font>';
};
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function SetTable($Zawartosc, $source)
{
if($source)
{
$Zawartosc = preg_replace( '/(^|[^a-z0-9])([0-9]+(.[0-9]+)?)/mi', '$1<font color=red>$2</font>', $Zawartosc); // kolorowanie cyfer/liter $Zawartosc = preg_replace( '/"(|(.*?[^]))"/', '<font color="#0000CC">"$1"</font>', $Zawartosc); // kolorowanie między "" $Zawartosc = preg_replace( '/'(|(.*?
[^
]))'/', '<font color=#0000CC>'$
1'</font>', $Zawartosc); // kolorowanie między '' $Zawartosc = preg_replace( '///(|(.*?[^]))n/', '<font color=green>//$1</font>', $Zawartosc); // kolorowanie między // a nową linią $Zawartosc = '
<table BORDER=0 CELLPADDING=0 CELLSPACING=0 width=100%>
<tbody>
<tr>
<td height=1 bgcolor="#C0C0C0"></td>
</tr>
<tr>
<td>
<table BORDER=0 CELLPADDING=0 CELLSPACING=0 width=100% background="editor_bg.gif">
<tbody>
<tr>
<td width=1 bgcolor="#C0C0C0"></td>
<td width=14 bgcolor="#F4F8FC" ></td>
<td width=1 bgcolor="#C0C0C0"></td>
<td width=10 bgcolor="#FFFFFF"></td>
<td width=*% bgcolor="#FFFFFF">'.$Zawartosc.'</td>
<td width=1 bgcolor="#C0C0C0"></td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<td height=1 bgcolor="#C0C0C0"></td>
</tr>
</tbody>
</table>';
}else{
$Zawartosc = '
<table BORDER=0 CELLPADDING=0 CELLSPACING=0 width=100%>
<tbody>
<tr align=justify>
<td height=100%>'.$Zawartosc.'</td>
</tr>
</tbody>
</table>';
};
return $Zawartosc;
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
function bbcode($s)
{
$match_s = array('#(.*?)
#se'); $replace_s = array("SetTable(WinToCPP(stripslashes('$1')), 1)");
$match_one = array('#[kom](.*?)[/kom]#se'); $replace_one = array("SetTable(WinToISO(stripslashes('$1')), 0)");
$match_two = array('##include <font color="#0000CC">"(.*?)"</font>#se'); $replace_two = array("IncludeME(stripslashes('$1'), 1)");
$match_three = array('##include <(.*?)>#se'); $replace_three = array("IncludeME(stripslashes('$1'), 0)"); $body_three = preg_replace($match_three, $replace_three, $three);
$match_four = array('##include "(.*?)"#se'); $replace_four = array("IncludeME(stripslashes('$1'), 1)");
}
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
// główna funkcja od której wszystko się zaczyna
function BodyCreate($BodySource)
{
$BodySource = nl2br(WinToISO
($BodySource)); echo bbcode
($BodySource); }
//-----------------------------------------------------//-----------------------------------------------------//-----------------------------------------------------
?>
PS : cos zle wyswietla kod funkcji - gubi znaki '\'
Ten post edytował Setesh 26.05.2007, 03:36:16