Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F117752326
enriched.inc
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None
enriched.inc
View Options
<
?
php
/*
File: read_enriched.inc
Author: Ryo Chijiiwa
License: GPL (part of IlohaMail)
Purpose: functions for handling text/enriched messages
Reference: RFC 1523, 1896
*/
function
enriched_convert_newlines
(
$
str
){
//remove single newlines, convert N newlines to N-1
$
str
=
str_replace
(
"\r\n"
,
"\n"
,
$
str
);
$
len
=
strlen
(
$
str
);
$
nl
=
0
;
$
out
=
''
;
for
(
$
i
=
0
;
$
i
<
$
len
;
$
i
++
){
$
c
=
$
str
[
$
i
];
if
(
ord
(
$
c
)
==
10
)
$
nl
++
;
if
(
$
nl
&&
ord
(
$
c
)
!
=
10
)
$
nl
=
0
;
if
(
$
nl
!
=
1
)
$
out
.
=
$
c
;
else
$
out
.
=
'
'
;
}
return
$
out
;
}
function
enriched_convert_formatting
(
$
body
){
$
a
=
array
(
'
<
bold
>
'
=
>
'
<
b
>
'
,
'
<
/
bold
>
'
=
>
'
<
/
b
>
'
,
'
<
italic
>
'
=
>
'
<
i
>
'
,
'
<
/
italic
>
'
=
>
'
<
/
i
>
'
,
'
<
fixed
>
'
=
>
'
<
tt
>
'
,
'
<
/
fixed
>
'
=
>
'
<
/
tt
>
'
,
'
<
smaller
>
'
=
>
'
<
font
size
=-
1
>
'
,
'
<
/
smaller
>
'
=
>
'
<
/
font
>
'
,
'
<
bigger
>
'
=
>
'
<
font
size
=+
1
>
'
,
'
<
/
bigger
>
'
=
>
'
<
/
font
>
'
,
'
<
underline
>
'
=
>
'
<
span
style
=
"text-decoration: underline"
>
'
,
'
<
/
underline
>
'
=
>
'
<
/
span
>
'
,
'
<
flushleft
>
'
=
>
'
<
span
style
=
"text-align:left"
>
'
,
'
<
/
flushleft
>
'
=
>
'
<
/
span
>
'
,
'
<
flushright
>
'
=
>
'
<
span
style
=
"text-align:right"
>
'
,
'
<
/
flushright
>
'
=
>
'
<
/
span
>
'
,
'
<
flushboth
>
'
=
>
'
<
span
style
=
"text-align:justified"
>
'
,
'
<
/
flushboth
>
'
=
>
'
<
/
span
>
'
,
'
<
indent
>
'
=
>
'
<
span
style
=
"padding-left: 20px"
>
'
,
'
<
/
indent
>
'
=
>
'
<
/
span
>
'
,
'
<
indentright
>
'
=
>
'
<
span
style
=
"padding-right: 20px"
>
'
,
'
<
/
indentright
>
'
=
>
'
<
/
span
>
'
);
while
(
list
(
$
find
,
$
replace
)
=
each
(
$
a
)){
$
body
=
preg_replace
(
'#'.$
find
.'#
i
'
,
$
replace
,
$
body
);
}
return
$
body
;
}
function
enriched_font
(
$
body
){
$
pattern
=
'
/
(
.
*
)
\
<
fontfamily
\
>
\
<
param
\
>(
.
*
)
\
<
\
/
param
\
>(
.
*
)
\
<
\
/
fontfamily
\
>(
.
*
)
/
ims
'
;
while
(
preg_match
(
$
pattern
,
$
body
,
$
a
)){
//print_r($a);
if
(
count
(
$
a
)
!
=
5
)
continue
;
$
body
=
$
a
[
1
]
.'
<
span
style
=
"font-family: '.$a[2].'"
>
'.$
a
[
3
]
.'
<
/
span
>
'.$
a
[
4
];
}
return
$
body
;
}
function
enriched_color
(
$
body
){
$
pattern
=
'
/
(
.
*
)
\
<
color
\
>
\
<
param
\
>(
.
*
)
\
<
\
/
param
\
>(
.
*
)
\
<
\
/
color
\
>(
.
*
)
/
ims
'
;
while
(
preg_match
(
$
pattern
,
$
body
,
$
a
)){
//print_r($a);
if
(
count
(
$
a
)
!
=
5
)
continue
;
//extract color (either by name, or ####,####,####)
if
(
strpos
(
$
a
[
2
],
'
,
'
)){
$
rgb
=
explode
(
'
,
'
,
$
a
[
2
]);
$
color
=
'#'
;
for
(
$
i
=
0
;
$
i
<
3
;
$
i
++
)
$
color
.
=
substr
(
$
rgb
[
$
i
],
0
,
2
);
//just take first 2 bytes
}
else
{
$
color
=
$
a
[
2
];
}
//put it all together
$
body
=
$
a
[
1
]
.'
<
span
style
=
"color: '.$color.'"
>
'.$
a
[
3
]
.'
<
/
span
>
'.$
a
[
4
];
}
return
$
body
;
}
function
enriched_excerpt
(
$
body
){
$
pattern
=
'
/
(
.
*
)
\
<
excerpt
\
>(
.
*
)
\
<
\
/
excerpt
\
>(
.
*
)
/
i
'
;
while
(
preg_match
(
$
pattern
,
$
body
,
$
a
)){
//print_r($a);
if
(
count
(
$
a
)
!
=
4
)
continue
;
$
quoted
=
''
;
$
lines
=
explode
(
'
<
br
>
'
,
$
a
[
2
]);
foreach
(
$
lines
as
$
n
=
>
$
line
)
$
quoted
.
=
'&
gt
;
'.$
line
.'
<
br
>
'
;
$
body
=
$
a
[
1
]
.'
<
span
class
=
"quotes"
>
'.$
quoted
.'
<
/
span
>
'.$
a
[
3
];
}
return
$
body
;
}
function
enriched_to_html
(
$
body
){
$
body
=
str_replace
(
'
<<
'
,
'&
lt
;
'
,
$
body
);
$
body
=
enriched_convert_newlines
(
$
body
);
$
body
=
str_replace
(
"\n"
,
'
<
br
>
'
,
$
body
);
$
body
=
enriched_convert_formatting
(
$
body
);
$
body
=
enriched_color
(
$
body
);
$
body
=
enriched_font
(
$
body
);
$
body
=
enriched_excerpt
(
$
body
);
//$body = nl2br($body);
return
$
body
;
}
?
>
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, Apr 4, 4:01 AM (11 h, 2 m ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
08/76/c62eb85d3eb499f4b38823b93e88
Default Alt Text
enriched.inc (2 KB)
Attached To
Mode
R113 roundcubemail
Attached
Detach File
Event Timeline