PluginProbe ʕ •ᴥ•ʔ
WooCommerce Square / 2.2.5
WooCommerce Square v2.2.5
5.5.0 5.4.3 5.4.2 5.4.1 5.4.0 trunk 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.6.0 2.7.0 2.8.0 2.9.0 2.9.1 3.0.0 3.0.1 3.0.2 3.0.3 3.1.0 3.2.0 3.3.0 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.7.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 4.0.0 4.1.0 4.2.0 4.2.1 4.2.2 4.2.3 4.3.0 4.3.1 4.3.2 4.4.0 4.4.1 4.4.2 4.5.0 4.5.1 4.5.2 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 4.9.8 4.9.9 5.0.0 5.0.1 5.1.0 5.1.1 5.1.2 5.2.0 5.3.0 5.3.1 5.3.2 5.3.3
woocommerce-square / includes / Utilities / String_Utility.php
woocommerce-square / includes / Utilities Last commit date
Encryption_Utility.php 6 years ago Money_Utility.php 6 years ago String_Utility.php 6 years ago
String_Utility.php
83 lines
1 <?php
2 /**
3 * WooCommerce Square
4 *
5 * This source file is subject to the GNU General Public License v3.0
6 * that is bundled with this package in the file license.txt.
7 * It is also available through the world-wide-web at this URL:
8 * http://www.gnu.org/licenses/gpl-3.0.html
9 * If you did not receive a copy of the license and are unable to
10 * obtain it through the world-wide-web, please send an email
11 * to license@woocommerce.com so we can send you a copy immediately.
12 *
13 * DISCLAIMER
14 *
15 * Do not edit or add to this file if you wish to upgrade WooCommerce Square to newer
16 * versions in the future. If you wish to customize WooCommerce Square for your
17 * needs please refer to https://docs.woocommerce.com/document/woocommerce-square/
18 *
19 * @author WooCommerce
20 * @copyright Copyright: (c) 2019, Automattic, Inc.
21 * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public License v3.0
22 */
23
24 namespace WooCommerce\Square\Utilities;
25
26 defined( 'ABSPATH' ) || exit;
27
28 /**
29 * Helper for dealing with String values.
30 *
31 * @since 2.2.0
32 */
33 class String_Utility {
34
35 /**
36 * Truncates $string after a given $length if string is longer than
37 * $length.
38 *
39 * The last characters will be replaced with the $omission string
40 * for a total length not exceeding $length
41 *
42 * See SV_WC_Helper::str_truncate()
43 *
44 * @since 2.2.0
45 * @param string $string text to truncate
46 * @param int $length total desired length of string, including omission
47 * @param string $omission omission text, defaults to '...'
48 * @return string
49 */
50 public static function truncate( $string, $length, $omission = '...' ) {
51 $string = self::to_ascii( $string );
52
53 // bail if string doesn't need to be truncated
54 if ( strlen( $string ) <= $length ) {
55 return $string;
56 }
57
58 $length -= strlen( $omission );
59
60 return substr( $string, 0, $length ) . $omission;
61 }
62
63 /**
64 * Returns a string with all non-ASCII characters removed. This is useful
65 * for any string functions that expect only ASCII chars and can't
66 * safely handle UTF-8. Note this only allows ASCII chars in the range
67 * 33-126 (newlines/carriage returns are stripped)
68 *
69 * See SV_WC_Helper::str_to_ascii()
70 *
71 * @since 2.2.0
72 * @param string $string string to make ASCII
73 * @return string
74 */
75 public static function to_ascii( $string ) {
76 // strip ASCII chars 32 and under
77 $string = filter_var( $string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW );
78
79 // strip ASCII chars 127 and higher
80 return filter_var( $string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH );
81 }
82 }
83