Convert PHP function to ASP.NET C# - Regular Expressions

Completado Publicado Mar 3, 2010 Pagado a la entrega
Completado Pagado a la entrega

I need the following PHP function to be converted to an ASP.NET C# method. This function comes from Wordpress.

/**

* Replaces double line-breaks with paragraph elements.

*

* A group of regex replaces used to identify text formatted with newlines and

* replace double line-breaks with HTML paragraph tags. The remaining

* line-breaks after conversion become <<br />> tags, unless $br is set to '0'

* or 'false'.

*

* @since 0.71

*

* @param string $pee The text which has to be formatted.

* @param int|bool $br Optional. If set, this will convert all remaining line-breaks after paragraphing. Default true.

* @return string Text which has been converted into correct paragraph tags.

*/

function wpautop($pee, $br = 1) {

if ( trim($pee) === '' )

return '';

$pee = $pee . "\n"; // just to make things a little easier, pad the end

$pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);

// Space things out a little

$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr)';

$pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);

$pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);

$pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines

if ( strpos($pee, '<object') !== false ) {

$pee = preg_replace('|\s*<param([^>]*)>\s*|', "<param$1>", $pee); // no pee inside object/embed

$pee = preg_replace('|\s*</embed>\s*|', '</embed>', $pee);

}

$pee = preg_replace("/\n\n+/", "\n\n", $pee); // take care of duplicates

// make paragraphs, including one at the end

$pees = preg_split('/\n\s*\n/', $pee, -1, PREG_SPLIT_NO_EMPTY);

$pee = '';

foreach ( $pees as $tinkle )

$pee .= '<p>' . trim($tinkle, "\n") . "</p>\n";

$pee = preg_replace('|<p>\s*</p>|', '', $pee); // under certain strange conditions it could create a P of entirely whitespace

$pee = preg_replace('!<p>([^<]+)</(div|address|form)>!', "<p>$1</p></$2>", $pee);

$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee); // don't pee all over a tag

$pee = preg_replace("|<p>(<li.+?)</p>|", "$1", $pee); // problem with nested lists

$pee = preg_replace('|<p><blockquote([^>]*)>|i', "<blockquote$1><p>", $pee);

$pee = str_replace('</blockquote></p>', '</p></blockquote>', $pee);

$pee = preg_replace('!<p>\s*(</?' . $allblocks . '[^>]*>)!', "$1", $pee);

$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*</p>!', "$1", $pee);

if ($br) {

$pee = preg_replace_callback('/<(script|style).*?<\/\\1>/s', create_function('$matches', 'return str_replace("\n", "<WPPreserveNewline />", $matches[0]);'), $pee);

$pee = preg_replace('|(?<!<br />)\s*\n|', "<br />\n", $pee); // optionally make line breaks

$pee = str_replace('<WPPreserveNewline />', "\n", $pee);

}

$pee = preg_replace('!(</?' . $allblocks . '[^>]*>)\s*<br />!', "$1", $pee);

$pee = preg_replace('!<br />(\s*</?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)[^>]*>)!', '$1', $pee);

if (strpos($pee, '<pre') !== false)

$pee = preg_replace_callback('!(<pre[^>]*>)(.*?)</pre>!is', 'clean_pre', $pee );

$pee = preg_replace( "|\n</p>$|", '</p>', $pee );

$pee = preg_replace('/<p>\s*?(' . get_shortcode_regex() . ')\s*<\/p>/s', '$1', $pee); // don't auto-p wrap shortcodes that stand alone

return $pee;

}

.NET Programación en C# PHP

Nº del proyecto: #626016

Sobre el proyecto

4 propuestas Proyecto remoto Activo Mar 3, 2010

Adjudicado a:

sureshdevi

I can do this work. Thanks, Suresh

$30 USD en 0 días
(570 comentarios)
7.4

4 freelancers están ofertando un promedio de $35 por este trabajo

nsurani

We have both passion & expertise to do the same.

$30 USD en 1 día
(14 comentarios)
5.6
Janjua122

We assure you a great output of this project. We want to make long term business relationship with you. We connect our client for daily update reports. Select us right now. Award this project to us.

$30 USD en 0 días
(5 comentarios)
2.6
darkknight84

will provide the output function in c#.net, if you would provide a test input and output to confirm result that would be great.

$50 USD en 1 día
(0 comentarios)
0.0