• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP wp_html_split函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中wp_html_split函数的典型用法代码示例。如果您正苦于以下问题:PHP wp_html_split函数的具体用法?PHP wp_html_split怎么用?PHP wp_html_split使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了wp_html_split函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: latex_markup

/**
 * LaTeX support.
 *
 * Backward compatibility requires support for both "[latex][/latex]", and
 * "$latex $" shortcodes.
 *
 * $latex e^{\i \pi} + 1 = 0$  ->  [latex]e^{\i \pi} + 1 = 0[/latex]
 * $latex [a, b]$              ->  [latex][a, b][/latex]
 */
function latex_markup($content)
{
    $textarr = wp_html_split($content);
    $regex = '%
		\\$latex(?:=\\s*|\\s+)
		((?:
			[^$]+ # Not a dollar
		|
			(?<=(?<!\\\\)\\\\)\\$ # Dollar preceded by exactly one slash
		)+)
		(?<!\\\\)\\$ # Dollar preceded by zero slashes
	%ix';
    foreach ($textarr as &$element) {
        if ('' == $element || '<' === $element[0]) {
            continue;
        }
        if (false === stripos($element, '$latex')) {
            continue;
        }
        $element = preg_replace_callback($regex, 'latex_src', $element);
    }
    return implode('', $textarr);
}
开发者ID:kanei,项目名称:vantuch.cz,代码行数:32,代码来源:latex.php


示例2: do_shortcodes_in_html_tags

/**
 * Search only inside HTML elements for shortcodes and process them.
 *
 * Any [ or ] characters remaining inside elements will be HTML encoded
 * to prevent interference with shortcodes that are outside the elements.
 * Assumes $content processed by KSES already.  Users with unfiltered_html
 * capability may get unexpected output if angle braces are nested in tags.
 *
 * @since 4.2.3
 *
 * @param string $content Content to search for shortcodes
 * @param bool $ignore_html When true, all square braces inside elements will be encoded.
 * @return string Content with shortcodes filtered out.
 */
function do_shortcodes_in_html_tags($content, $ignore_html)
{
    // Normalize entities in unfiltered HTML before adding placeholders.
    $trans = array('&#91;' => '&#091;', '&#93;' => '&#093;');
    $content = strtr($content, $trans);
    $trans = array('[' => '&#91;', ']' => '&#93;');
    $pattern = get_shortcode_regex();
    $textarr = wp_html_split($content);
    foreach ($textarr as &$element) {
        if ('' == $element || '<' !== $element[0]) {
            continue;
        }
        $noopen = false === strpos($element, '[');
        $noclose = false === strpos($element, ']');
        if ($noopen || $noclose) {
            // This element does not contain shortcodes.
            if ($noopen xor $noclose) {
                // Need to encode stray [ or ] chars.
                $element = strtr($element, $trans);
            }
            continue;
        }
        if ($ignore_html || '<!--' === substr($element, 0, 4) || '<![CDATA[' === substr($element, 0, 9)) {
            // Encode all [ and ] chars.
            $element = strtr($element, $trans);
            continue;
        }
        $attributes = wp_kses_attr_parse($element);
        if (false === $attributes) {
            // Some plugins are doing things like [name] <[email]>.
            if (1 === preg_match('%^<\\s*\\[\\[?[^\\[\\]]+\\]%', $element)) {
                $element = preg_replace_callback("/{$pattern}/s", 'do_shortcode_tag', $element);
            }
            // Looks like we found some crazy unfiltered HTML.  Skipping it for sanity.
            $element = strtr($element, $trans);
            continue;
        }
        // Get element name
        $front = array_shift($attributes);
        $back = array_pop($attributes);
        $matches = array();
        preg_match('%[a-zA-Z0-9]+%', $front, $matches);
        $elname = $matches[0];
        // Look for shortcodes in each attribute separately.
        foreach ($attributes as &$attr) {
            $open = strpos($attr, '[');
            $close = strpos($attr, ']');
            if (false === $open || false === $close) {
                continue;
                // Go to next attribute.  Square braces will be escaped at end of loop.
            }
            $double = strpos($attr, '"');
            $single = strpos($attr, "'");
            if ((false === $single || $open < $single) && (false === $double || $open < $double)) {
                // $attr like '[shortcode]' or 'name = [shortcode]' implies unfiltered_html.
                // In this specific situation we assume KSES did not run because the input
                // was written by an administrator, so we should avoid changing the output
                // and we do not need to run KSES here.
                $attr = preg_replace_callback("/{$pattern}/s", 'do_shortcode_tag', $attr);
            } else {
                // $attr like 'name = "[shortcode]"' or "name = '[shortcode]'"
                // We do not know if $content was unfiltered. Assume KSES ran before shortcodes.
                $count = 0;
                $new_attr = preg_replace_callback("/{$pattern}/s", 'do_shortcode_tag', $attr, -1, $count);
                if ($count > 0) {
                    // Sanitize the shortcode output using KSES.
                    $new_attr = wp_kses_one_attr($new_attr, $elname);
                    if ('' !== trim($new_attr)) {
                        // The shortcode is safe to use now.
                        $attr = $new_attr;
                    }
                }
            }
        }
        $element = $front . implode('', $attributes) . $back;
        // Now encode any remaining [ or ] chars.
        $element = strtr($element, $trans);
    }
    $content = implode('', $textarr);
    return $content;
}
开发者ID:yarylo,项目名称:cerkva.pp.ua,代码行数:95,代码来源:shortcodes.php


示例3: wp_replace_in_html_tags

/**
 * Replace characters or phrases within HTML elements only.
 *
 * @since 4.2.3
 *
 * @param string $haystack The text which has to be formatted.
 * @param array $replace_pairs In the form array('from' => 'to', ...).
 * @return string The formatted text.
 */
function wp_replace_in_html_tags($haystack, $replace_pairs)
{
    // Find all elements.
    $textarr = wp_html_split($haystack);
    $changed = false;
    // Optimize when searching for one item.
    if (1 === count($replace_pairs)) {
        // Extract $needle and $replace.
        foreach ($replace_pairs as $needle => $replace) {
        }
        // Loop through delimiters (elements) only.
        for ($i = 1, $c = count($textarr); $i < $c; $i += 2) {
            if (false !== strpos($textarr[$i], $needle)) {
                $textarr[$i] = str_replace($needle, $replace, $textarr[$i]);
                $changed = true;
            }
        }
    } else {
        // Extract all $needles.
        $needles = array_keys($replace_pairs);
        // Loop through delimiters (elements) only.
        for ($i = 1, $c = count($textarr); $i < $c; $i += 2) {
            foreach ($needles as $needle) {
                if (false !== strpos($textarr[$i], $needle)) {
                    $textarr[$i] = strtr($textarr[$i], $replace_pairs);
                    $changed = true;
                    // After one strtr() break out of the foreach loop and look at next element.
                    break;
                }
            }
        }
    }
    if ($changed) {
        $haystack = implode($textarr);
    }
    return $haystack;
}
开发者ID:zhoujiangyou,项目名称:WordPress,代码行数:46,代码来源:formatting.php


示例4: schunt_codes_from_text

 /**
  * Extract shortcodes from a text string
  *
  * First we break the string down into chunks of HTML
  * then we process the shortcodes within the HTML
  * or the shortcodes in plain text
  * Ignoring sections where we don't expect to see shortcodes
  * 
  *
  * @param string $text a text field
  * @return array of shortcodes, may be an empty array 
  */
 function schunt_codes_from_text($text)
 {
     $codes = array();
     if ($this->schunt($text)) {
         $text_array = wp_html_split($text);
         //print_r( $text_array );
         foreach ($text_array as $text) {
             if ($this->skip($text)) {
                 continue;
             }
             if ($this->schunt($text)) {
                 $bits = explode("[", $text);
                 //print_r( $bits );
                 array_shift($bits);
                 foreach ($bits as $bit) {
                     if ($this->skip($bit)) {
                         continue;
                     }
                     if (strlen($bit) > 0) {
                         $bit = strtr($bit, "/]", "  ");
                         $bit = rtrim($bit);
                         $sc = explode(" ", $bit);
                         $code = $sc[0];
                         //echo "Code: $code" . PHP_EOL;
                         $invalid = preg_match('@[<>&/\\[\\]\\x00-\\x20=]@', $code);
                         if ($invalid) {
                             echo "Invalid shortcode detected? {$code}" . PHP_EOL;
                             echo $bit . PHP_EOL;
                             echo PHP_EOL;
                             echo $text . PHP_EOL;
                             //gobang();
                             docontinue();
                             //oikb_get_response();
                         } else {
                             //echo "Code: $code looks like a good un" . PHP_EOL;
                             $codes[$code] = $code;
                             $this->found_codes[$code] = $code;
                             $this->check_code_skip($code);
                         }
                     }
                 }
             }
         }
     }
     //print_r( $codes );
     //gobang();
     return $codes;
 }
开发者ID:bobbingwide,项目名称:schunter,代码行数:60,代码来源:class-schunter.php


示例5: jetpack_preg_replace_callback_outside_tags

/**
 * Runs preg_replace_callback so that replacements don't happen within open tags.  
 * Parameters are the same as preg_replace, with an added optional search param for improved performance
 *
 * @param String $pattern
 * @param String $replacement
 * @param String $content
 * @param String $search
 * @return String $content
 */
function jetpack_preg_replace_callback_outside_tags($pattern, $callback, $content, $search = null)
{
    if (!function_exists('wp_html_split')) {
        return $content;
    }
    if ($search && false === strpos($content, $search)) {
        return $content;
    }
    $textarr = wp_html_split($content);
    unset($content);
    foreach ($textarr as &$element) {
        if ('' === $element || '<' === $element[0]) {
            continue;
        }
        $element = preg_replace_callback($pattern, $callback, $element);
    }
    return join($textarr);
}
开发者ID:pcuervo,项目名称:wp-carnival,代码行数:28,代码来源:shortcodes.php


示例6: test_basic_features

 /**
  * Basic functionality goes here.
  *
  * @dataProvider data_basic_features
  */
 function test_basic_features($input, $output)
 {
     return $this->assertEquals($output, wp_html_split($input));
 }
开发者ID:boonebgorges,项目名称:develop.wordpress,代码行数:9,代码来源:WpHtmlSplit.php



注:本文中的wp_html_split函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP wp_htmledit_pre函数代码示例发布时间:2022-05-23
下一篇:
PHP wp_html_excerpt函数代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap