Home CMS Tutorial DEDECMS How to use dedecms string interception function

How to use dedecms string interception function

Jan 11, 2020 am 10:03 AM
dedecms

How to use dedecms string interception function

#How to use dedecms string interception function?

dedecms cn_substr_utf8 string interception function discussion

Recommended study: 梦weavercms

This article I saw on phpsir, The main thing is that there seems to be some problems with the cn_substr_utf8 function of dedecms. Friends who study dedecms can take a look

The cn_substr_utf8 function in dedecms is like this

The code is as follows:

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

/**

* utf-8中文截取,单字节截取模式

*

* @access public

* @param string $str 需要截取的字符串

* @param int $slen 截取的长度

* @param int $startdd 开始标记处

* @return string

*/

if ( ! function_exists('cn_substr_utf8'))

{

function cn_substr_utf8($str, $length, $start=0)

{

if(strlen($str) < $start+1)

{

return &#39;&#39;;

}

preg_match_all("/./su", $str, $ar);

$str = &#39;&#39;;

$tstr = &#39;&#39;;</p> <p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取

for($i=0; isset($ar[0][$i]); $i++)

{

if(strlen($tstr) < $start)

{

$tstr .= $ar[0][$i];

}

else

{

if(strlen($str) < $length + strlen($ar[0][$i]) )

{

$str .= $ar[0][$i];

}

else

{

break;

}

}

}

return $str;

}

}

Copy after login

The code is as follows:

1

if(strlen($str) < $length + strlen($ar[0][$i]) )

Copy after login

One line may cause an extra character after interception. You can consider changing it to

The code is as follows:

1

if(strlen($str) < $length + strlen($ar[0][$i]) -1 )

Copy after login

The test code is as follows

The code is as follows:

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

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

$f = "你好fasdfa你fasdf#e#";

$pos = strpos($f,'#e#');

var_dump($pos);

var_dump(cn_substr_utf8($f,$pos));

var_dump(cn_substr_utf82($f,$pos));<p></p> <p>function cn_substr($str, $slen, $startdd=0)

{

global $cfg_soft_lang;

if($cfg_soft_lang=='utf-8')

{

return cn_substr_utf8($str, $slen, $startdd);

}

$restr = '';

$c = '';

$str_len = strlen($str);

if($str_len < $startdd+1)

{

return '';

}

if($str_len < $startdd + $slen || $slen==0)

{

$slen = $str_len - $startdd;

}

$enddd = $startdd + $slen - 1;

for($i=0;$i<$str_len;$i++) { if($startdd==0) { $restr .= $c; } else if($i > $startdd)

{

$restr .= $c;

}</p> <p> if(ord($str[$i])>0x80)

{

if($str_len>$i+1)

{

$c = $str[$i].$str[$i+1];

}

$i++;

}

else

{

$c = $str[$i];

}</p> <p> if($i >= $enddd)

{

if(strlen($restr)+strlen($c)>$slen)

{

break;

}

else

{

$restr .= $c;

break;

}

}

}

return $restr;

}</p> <p>function cn_substr_utf8($str, $length, $start=0)

{

if(strlen($str) < $start+1)

{

return '';

}

preg_match_all("/./su", $str, $ar);</p> <p> $str = '';

$tstr = '';</p> <p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取

for($i=0; isset($ar[0][$i]); $i++)

{

if(strlen($tstr) < $start)

{</p> <p> $tstr .= $ar[0][$i];

}

else

{</p> <p> if(strlen($str) < $length + strlen($ar[0][$i]) )

{</p> <p> $str .= $ar[0][$i];

}

else

{</p> <p> break;

}

}

}

return $str;

}</p> <p>function cn_substr_utf82($str, $length, $start=0)

{

if(strlen($str) < $start+1)

{

return '';

}

preg_match_all("/./su", $str, $ar);</p> <p> $str = '';

$tstr = '';</p> <p> //为了兼容mysql4.1以下版本,与数据库varchar一致,这里使用按字节截取

for($i=0; isset($ar[0][$i]); $i++)

{

if(strlen($tstr) < $start)

{</p> <p> $tstr .= $ar[0][$i];

}

else

{</p> <p> if(strlen($str) < $length + strlen($ar[0][$i]) -1 ) // phpsir 加了 -1

{</p> <p> $str .= $ar[0][$i];

}

else

{</p> <p> break;

}

}

}

return $str;

}</p>

Copy after login

The above is the detailed content of How to use dedecms string interception function. For more information, please follow other related articles on the PHP Chinese website!

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

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.

Undress AI Tool

Undress AI Tool

Undress images for free

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)

Where is the imperial cms resource network template? Where is the imperial cms resource network template? Apr 17, 2024 am 10:00 AM

Empire CMS template download location: Official template download: https://www.phome.net/template/ Third-party template website: https://www.dedecms.com/diy/https://www.0978.com.cn /https://www.jiaocheng.com/Installation method: Download template Unzip template Upload template Select template

How dedecms implements template replacement How dedecms implements template replacement Apr 16, 2024 pm 12:12 PM

Template replacement can be implemented in Dedecms through the following steps: modify the global.cfg file and set the required language pack. Modify the taglib.inc.php hook file and add support for language suffix template files. Create a new template file with a language suffix and modify the required content. Clear Dedecms cache.

What website can dedecms do? What website can dedecms do? Apr 16, 2024 pm 12:24 PM

Dedecms is an open source CMS that can be used to create various types of websites, including: news websites, blogs, e-commerce websites, forums and community websites, educational websites, portals, other types of websites (such as corporate websites, personal websites, photo album websites, video sharing website)

How to upload local videos to dedecms How to upload local videos to dedecms Apr 16, 2024 pm 12:39 PM

How to upload local videos using Dedecms? Prepare the video file in a format that is supported by Dedecms. Log in to the Dedecms management backend and create a new video category. Upload video files on the video management page, fill in the relevant information and select the video category. To embed a video while editing an article, enter the file name of the uploaded video and adjust its dimensions.

How to use dedecms How to use dedecms Apr 16, 2024 pm 12:15 PM

Dedecms is an open source Chinese CMS system that provides content management, template system and security protection. The specific usage includes the following steps: 1. Install Dedecms. 2. Configure the database. 3. Log in to the management interface. 4. Create content. 5. Set up the template. 6. Manage users. 7. Maintain the system.

What loopholes does dedecms have? What loopholes does dedecms have? Aug 03, 2023 pm 03:56 PM

DedeCMS is an open source content management system that has some potential vulnerabilities and security risks: 1. SQL injection vulnerability. Attackers can perform unauthorized operations or obtain sensitive data by constructing malicious SQL query statements; 2. File Upload vulnerability, attackers can upload files containing malicious code to the server to execute arbitrary code or obtain server permissions; 3. Sensitive information leakage; 4. Unauthenticated vulnerability exploitation.

How does dedecms implement template replacement? How does dedecms implement template replacement? Apr 16, 2024 pm 12:21 PM

To implement template replacement in DedecMS, you need to perform the following steps: Determine the template file to be replaced. Common files include index.htm, list.htm and show.htm. Create a new template file, retaining the DedecMS markup. Upload the new template file, overwriting the original file. clear cache. Refresh the site to see the changes.

Accurate and reliable dedecms conversion tool evaluation report Accurate and reliable dedecms conversion tool evaluation report Mar 12, 2024 pm 07:03 PM

Accurate and reliable dedecms conversion tool evaluation report With the rapid development of the Internet era, website construction has become one of the necessary tools for many companies and individuals. In website construction, using a content management system (CMS) can manage website content and functions more conveniently and efficiently. Among them, dedecms, as a well-known CMS system, is widely used in various website construction projects. However, sometimes we are faced with the need to convert the dedecms website to other formats, in which case we need to use a conversion tool

See all articles