/var/www/html_us/wp-content/plugins/elementor/core/utils/str.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
namespace Elementor\Core\Utils;

if ( ! 
defined'ABSPATH' ) ) {
    exit; 
// Exit if accessed directly
}

class 
Str {

    
/**
     * Convert a non-latin URL to an IDN one.
     * Note: Max length is 64 chars.
     *
     * @param string $url - A URL to encode.
     *
     * @return string - IDN encoded URL ( e.g. `http://é.com` will be encoded to `http://xn--9ca.com` ).
     */
    
public static function encode_idn_url$url ) {
        return 
preg_replace_callback'/(https?:\/\/)(.+)/', function ( $matches ) {
            
// WP >= 6.2-alpha
            
if ( class_exists'\WpOrg\Requests\IdnaEncoder' ) ) {
                
$class \WpOrg\Requests\IdnaEncoder::class;
            } else {
                
$class \Requests_IDNAEncoder::class;
            }

            return 
$matches[1] . $class::encode$matches[2] );
        }, 
$url );
    }

    
/**
     * Checks if a string ends with a given substring
     *
     * @param $haystack
     * @param $needle
     * @return bool
     */
    
public static function ends_with$haystack$needle ) {
        return 
substr$haystack, -strlen$needle ) ) === $needle;
    }
}