<label id="gyyro"></label>
<span id="gyyro"></span>
<rt id="gyyro"><optgroup id="gyyro"></optgroup></rt>

<span id="gyyro"></span>

  1. <li id="gyyro"><legend id="gyyro"></legend></li>
  2. ): <\/p>\n

    $body = tidy_get_body($tidy);<\/p>\n

    You can use var_dump at this time If you look at the structure of some $body, you will find that it turns each tag into a corresponding object with corresponding attributes. For example, such as sdf<\/a>, some attributes corresponding to such a statement are: <\/p>\n

    name=>”a”
    value => “
    sdf<\/a>\"
    child=> array{[0]=>A text node object, value is sdf}
    attribute=array{\"href\"=>\"#\"}
    … ..Other attributes<\/p>\n

    As you can see, we can actually process the value of the text node under the node corresponding to the a tag separately, so that it will not destroy any HTML integrity. Originally, I thought that after changing the value of the text node in the a label, the value of the a label would also change accordingly. In that case, it would be OK if I directly returned the value of the node corresponding to the a label. I didn't expect it to be like that. Alas, so I processed the text in it. Then you still have to spell out the new HTML yourself. <\/p>\n

    After knowing the structure of the Tidy object, everything is easy to handle. Just traverse all the nodes. For this requirement, it is to find the div tag and start processing the nodes inside. The code is as follows: <\/p>\n

    if(mb_strwidth($subchild->value, 'utf-8′) >= $len)
    {
    $subchild->value = mb_strimwidth($subchild->value, 0, $ len, '…', 'utf-8′);
    $trimed_str .= $subchild->value;
    break;
    }
    else
    {
    $trimed_str .= $subchild->value;
    $len = $len - mb_strwidth($subchild->value, 'utf-8′);$subchild in
    }<\/p>\n

    is a child node. Note that mb_strwidth is used here to obtain the string length. I strongly recommend this mb_strwidth, it is very useful, it will treat Chinese as two characters in length, which exactly meets the needs here! Moreover, mb_strimwidth is used when intercepting strings. This function will also treat Chinese as two characters in length. The functions starting with mb_ are really easy to use. <\/p>\n

    I won’t write out the specific code, because it is written based on a requirement and is not made into a universal form. One day I have time to make it universal and publish it. <\/p>\n

    In addition, it is a pity that FireFox does not support the text-overflow attribute, otherwise there would be no need to work so hard in the background to truncate it. If you have a better method, you can leave a message for discussion. For more related articles, please pay attention to the PHP Chinese website (www.miracleart.cn)! <\/p>\n


    <\/p>"}

    国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

    Home php教程 PHP開發(fā) PHP HTML code string interception implementation code

    PHP HTML code string interception implementation code

    Dec 14, 2016 pm 01:19 PM

    And the data given is an HTML code string, such as this:

    When intercepting, you need to intercept the content inside the div tag, and keep the HTML tag, but only process the text in it. For example, I may just intercept the word "李" in "李思", but if I put it on the front end like this, the a tag in front of "李思" will not be closed, so after intercepting, I need to ensure that the HTML syntax is correct.

    This problem is really not easy to solve, it made me depressed for two days. Please note that this is just a string, but the content is HTML code and there is no DOM. It would be easier if it were processed on the front end. You can directly obtain the DOM, then process the nodes inside, and finally output things like innerHTML. It doesn't work now, I have to change my mind. The colleague’s idea is this:

    Traverse each character of the string. Set a tag, and set it to 1 when it encounters the tag < at the beginning of the tag. The following characters will not be counted, and then start counting after encountering >. When processing the string inside the label, you must first determine whether the current character encoding may be Chinese. Generally speaking, the length of UTF-8 encoded Chinese characters in PHP is 3, so if you encounter a Chinese character encoding , I have to skip two uncounted ones... At this point, my head is starting to get big. Personally, I think this method is very unpleasant. First of all, this kind of exquisite logic is not easy to control, and the length of Chinese generated under UFT-8 encoding may be 3 or 4, so the rigor of the code is questionable.

    My personal idea is to use Tidy (please see the PHP manual for specific usage). I studied Tidy yesterday and found that this thing is quite useful. First, convert this string into a Tidy object, like this:

    $tidy = tidy_parse_string($str, array(), 'utf8′); // The last one is to set the encoding. Note that this is utf8, not utf- 8. There is no middle connection.

    Then get the body in $tidy (because after conversion, $tidy will automatically add tags such as ):

    $body = tidy_get_body($tidy);

    You can use var_dump at this time If you look at the structure of some $body, you will find that it turns each tag into a corresponding object with corresponding attributes. For example, such as sdf, some attributes corresponding to such a statement are:

    name=>”a”
    value => “sdf"
    child=> array{[0]=>A text node object, value is sdf}
    attribute=array{"href"=>"#"}
    … ..Other attributes

    As you can see, we can actually process the value of the text node under the node corresponding to the a tag separately, so that it will not destroy any HTML integrity. Originally, I thought that after changing the value of the text node in the a label, the value of the a label would also change accordingly. In that case, it would be OK if I directly returned the value of the node corresponding to the a label. I didn't expect it to be like that. Alas, so I processed the text in it. Then you still have to spell out the new HTML yourself.

    After knowing the structure of the Tidy object, everything is easy to handle. Just traverse all the nodes. For this requirement, it is to find the div tag and start processing the nodes inside. The code is as follows:

    if(mb_strwidth($subchild->value, 'utf-8′) >= $len)
    {
    $subchild->value = mb_strimwidth($subchild->value, 0, $ len, '…', 'utf-8′);
    $trimed_str .= $subchild->value;
    break;
    }
    else
    {
    $trimed_str .= $subchild->value;
    $len = $len - mb_strwidth($subchild->value, 'utf-8′);$subchild in
    }

    is a child node. Note that mb_strwidth is used here to obtain the string length. I strongly recommend this mb_strwidth, it is very useful, it will treat Chinese as two characters in length, which exactly meets the needs here! Moreover, mb_strimwidth is used when intercepting strings. This function will also treat Chinese as two characters in length. The functions starting with mb_ are really easy to use.

    I won’t write out the specific code, because it is written based on a requirement and is not made into a universal form. One day I have time to make it universal and publish it.

    In addition, it is a pity that FireFox does not support the text-overflow attribute, otherwise there would be no need to work so hard in the background to truncate it. If you have a better method, you can leave a message for discussion. For more related articles, please pay attention to the PHP Chinese website (www.miracleart.cn)!


    Statement of this Website
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

    Hot AI Tools

    Undress AI Tool

    Undress AI Tool

    Undress images for free

    Undresser.AI Undress

    Undresser.AI Undress

    AI-powered app for creating realistic nude photos

    AI Clothes Remover

    AI Clothes Remover

    Online AI tool for removing clothes from photos.

    Clothoff.io

    Clothoff.io

    AI clothes remover

    Video Face Swap

    Video Face Swap

    Swap faces in any video effortlessly with our completely free AI face swap tool!

    Hot Tools

    Notepad++7.3.1

    Notepad++7.3.1

    Easy-to-use and free code editor

    SublimeText3 Chinese version

    SublimeText3 Chinese version

    Chinese version, very easy to use

    Zend Studio 13.0.1

    Zend Studio 13.0.1

    Powerful PHP integrated development environment

    Dreamweaver CS6

    Dreamweaver CS6

    Visual web development tools

    SublimeText3 Mac version

    SublimeText3 Mac version

    God-level code editing software (SublimeText3)

    Hot Topics

    PHP Tutorial
    1502
    276
    The `` vs. `` in HTML The `` vs. `` in HTML Jul 19, 2025 am 12:41 AM

    It is a block-level element, used to divide large block content areas; it is an inline element, suitable for wrapping small segments of text or content fragments. The specific differences are as follows: 1. Exclusively occupy a row, width and height, inner and outer margins can be set, which are often used in layout structures such as headers, sidebars, etc.; 2. Do not wrap lines, only occupy the content width, and are used for local style control such as discoloration, bolding, etc.; 3. In terms of usage scenarios, it is suitable for the layout and structure organization of the overall area, and is used for small-scale style adjustments that do not affect the overall layout; 4. When nesting, it can contain any elements, and block-level elements should not be nested inside.

    Essential HTML Tags for Beginners Essential HTML Tags for Beginners Jul 27, 2025 am 03:45 AM

    To get started with HTML quickly, you only need to master a few basic tags to build a web skeleton. 1. The page structure is essential, and, which is the root element, contains meta information, and is the content display area. 2. Use the title. The higher the level, the smaller the number. Use tags to segment the text to avoid skipping the level. 3. The link uses tags and matches the href attributes, and the image uses tags and contains src and alt attributes. 4. The list is divided into unordered lists and ordered lists. Each entry is represented and must be nested in the list. 5. Beginners don’t have to force memorize all tags. It is more efficient to write and check them while you are writing. Master the structure, text, links, pictures and lists to create basic web pages.

    Shadow DOM Concepts and HTML Integration Shadow DOM Concepts and HTML Integration Jul 24, 2025 am 01:39 AM

    ShadowDOM is a technology used in web component technology to create isolated DOM subtrees. 1. It allows the mount of an independent DOM structure on ordinary HTML elements, with its own styles and behaviors, and does not affect the main document; 2. Created through JavaScript, such as using the attachShadow method and setting the mode to open; 3. When used in combination with HTML, it has three major features: clear structure, style isolation and content projection (slot); 4. Notes include complex debugging, style scope control, performance overhead and framework compatibility issues. In short, ShadowDOM provides native encapsulation capabilities for building reusable and non-polluting UI components.

    Why is my image not showing up in HTML? Why is my image not showing up in HTML? Jul 28, 2025 am 02:08 AM

    Image not displayed is usually caused by a wrong file path, incorrect file name or extension, HTML syntax issues, or browser cache. 1. Make sure that the src path is consistent with the actual location of the file and use the correct relative path; 2. Check whether the file name case and extension match exactly, and verify whether the image can be loaded by directly entering the URL; 3. Check whether the img tag syntax is correct, ensure that there are no redundant characters and the alt attribute value is appropriate; 4. Try to force refresh the page, clear the cache, or use incognito mode to eliminate cache interference. Troubleshooting in this order can solve most HTML image display problems.

    HTML `style` Tag: Inline vs. Internal CSS HTML `style` Tag: Inline vs. Internal CSS Jul 26, 2025 am 07:23 AM

    The style placement method needs to be selected according to the scene. 1. Inline is suitable for temporary modification of single elements or dynamic JS control, such as the button color changes with operation; 2. Internal CSS is suitable for projects with few pages and simple structure, which is convenient for centralized management of styles, such as basic style settings of login pages; 3. Priority is given to reuse, maintenance and performance, and it is better to split external link CSS files for large projects.

    Can you put a  tag inside another  tag? Can you put a tag inside another tag? Jul 27, 2025 am 04:15 AM

    ?Youcannotnesttagsinsideanothertagbecauseit’sinvalidHTML;browsersautomaticallyclosethefirstbeforeopeningthenext,resultinginseparateparagraphs.?Instead,useinlineelementslike,,orforstylingwithinaparagraph,orblockcontainerslikeortogroupmultipleparagraph

    HTML `link` for Prefetching DNS HTML `link` for Prefetching DNS Jul 23, 2025 am 02:19 AM

    Pre-resolving DNS can speed up page loading speed, and using HTML link tags for DNS pre-resolving is an effective method; DNSPrefetching saves subsequent request time by resolving domain names in advance; applicable scenarios include third-party fonts, advertising statistics scripts, resource hosting and CDN domain names; it is recommended to prioritize the main page dependency resources, reasonably control the number between 3 and 5, and use it with preconnect to better effect.

    What is the name attribute in an input tag for? What is the name attribute in an input tag for? Jul 27, 2025 am 04:14 AM

    Thenameattributeinaninputtagisusedtoidentifytheinputwhentheformissubmitted;itservesasthekeyinthekey-valuepairsenttotheserver,wheretheuser'sinputisthevalue.1.Whenaformissubmitted,thenameattributebecomesthekeyandtheinputvaluebecomesthevalueinthedatasen

    See all articles