相关疑难解决方法(0)

清理字符串以使其URL和文件名安全吗?

我试图想出一个功能,它可以很好地清理某些字符串,以便它们可以安全地在URL中使用(如post slug),也可以安全地用作文件名.例如,当有人上传文件时,我想确保从名称中删除所有危险字符.

到目前为止,我已经提出了以下函数,我希望能解决这个问题并允许外部UTF-8数据.

/**
 * Convert a string to the file/URL safe "slug" form
 *
 * @param string $string the string to clean
 * @param bool $is_filename TRUE will allow additional filename characters
 * @return string
 */
function sanitize($string = '', $is_filename = FALSE)
{
 // Replace all weird characters with dashes
 $string = preg_replace('/[^\w\-'. ($is_filename ? '~_\.' : ''). ']+/u', '-', $string);

 // Only allow one dash separator at a time (and make string lowercase)
 return mb_strtolower(preg_replace('/--+/u', '-', $string), …
Run Code Online (Sandbox Code Playgroud)

php url filenames sanitization

134
推荐指数
10
解决办法
17万
查看次数

将外来字符更改为正常的等效字符

我正在使用PHP,我想知道是否有一种预定义的方式将外国字符转换为非外国替代品.

诸如ê,ë,é之类的字符都会产生'e'.
我正在寻找一个函数,它将获取一个字符串并返回它没有特殊字符.
任何想法将不胜感激!

php regex special-characters string-search

31
推荐指数
4
解决办法
3万
查看次数

生成SEO友好URL(slugs)

定义

来自维基百科:

蛞蝓是识别使用人类可读关键字的页面的URL的一部分.

为了使用户更容易键入URL,通常也会删除或替换特殊字符.例如,重音字符通常被英文字母中的字母取代; 标点符号通常被删除; 和空格(必须编码为%20或+)由短划线( - )或下划线(_)代替,这些更美观.

上下文

我开发了一个照片共享网站,用户可以在其上传,分享和查看照片.

所有页面都是自动生成的,没有我对标题的控制.因为照片的标题或用户的名称可能包含重音字符或空格,我需要一个功能来自动创建slugs并保持可读的URL.

我创建了以下函数来替换重音字符(èçëçî),删除标点符号和错误字符(#@&〜^!)并以破折号转换空格.

问题

  • 你觉得这个功能怎么样?
  • 你知道创建slu的任何其他功能吗?

:

function sluggable($str) {

    $before = array(
        'àáâãäåòóôõöøèéêëðçìíîïùúûüñšž',
        '/[^a-z0-9\s]/',
        array('/\s/', '/--+/', '/---+/')
    );
 
    $after = array(
        'aaaaaaooooooeeeeeciiiiuuuunsz',
        '',
        '-'
    );

    $str = strtolower($str);
    $str = strtr($str, $before[0], $after[0]);
    $str = preg_replace($before[1], $after[1], $str);
    $str = trim($str);
    $str = preg_replace($before[2], $after[2], $str);
 
    return $str;
}
Run Code Online (Sandbox Code Playgroud)

php string seo friendly-url slug

17
推荐指数
5
解决办法
5万
查看次数

用PHP中的"等效"ASCII替换变音字符?

相关问题:

  1. 如何替换java String中的字符?
  2. 如何用C#中的等效字符替换特殊字符(例如"á"代替"a")?

正如上面的问题,我正在寻找一种可靠,强大的方法,使用PHP将任何unicode字符减少到接近等效的ASCII.我真的想避免滚动我自己的查找表.

例如(从第一个被引用的问题被盗):Gra?iš?e变成Gracisce

php diacritics character-encoding

14
推荐指数
1
解决办法
2万
查看次数

在PHP中将标题转换为url兼容模式的最佳方法?

http://domain.name/1-As Low As 10% Downpayment, Free Golf Membership!!!
Run Code Online (Sandbox Code Playgroud)

以上网址将报告400 bad request,

如何将这样的标题转换为用户友好的请求?

php url

12
推荐指数
3
解决办法
1万
查看次数

非拉丁语电子邮件地址验证

现在ICann允许使用非拉丁字符的域名,我应该关注电子邮件验证吗?目前,我的网站使用php函数来确保在电子邮件地址的每个段中设置一些字母数字字符集.这些其他字符集,例如西里尔字母,阿拉伯语和中文,会通过验证吗?是否有推荐的PHP功能用于此?

php email validation icann

11
推荐指数
1
解决办法
1841
查看次数

删除重音和特殊字符

可能重复:
在python unicode字符串中删除重音的最佳方法是什么?
Python和字符规范化

我想删除重音,将所有字符都改为小写,并删除任何数字和特殊字符.

示例:

Frédér8ic@ - >弗雷德里克

提案:

def remove_accents(data):
    return ''.join(x for x in unicodedata.normalize('NFKD', data) if \
    unicodedata.category(x)[0] == 'L').lower()
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

python diacritics

9
推荐指数
1
解决办法
2万
查看次数

最好的方法来逃脱并创造一个slu ..

可能重复:
PHP中的URL友好用户名?

我在某种程度上混淆了使用适当的函数来逃避和创建一个slu ..

我用过这个:

$slug_title = mysql_real_escape_string()($mtitle);
Run Code Online (Sandbox Code Playgroud)

但有人告诉我不要使用它并使用urlencode()

哪一个更适合slu and和安全

正如我在SO中看到的,它插入 - 在单词之间:

https://stackoverflow.com/questions/941270/validating-a-slug-in-django
Run Code Online (Sandbox Code Playgroud)

php slug

6
推荐指数
1
解决办法
4451
查看次数

正则表达式 - 在字符串末尾修剪字符

我试图删除-字符串末尾的尾随(破折号).这是我的代码:

<?php

$str = 'SAVE $45! - Wed. Beach Co-ed 6s (Jul-Aug)';

echo ereg_replace('([^a-z0-9]+)','-',strtolower($str));

?>

产生这个:

save-45-wed-beach-co-ed-6s-jul-aug-

如何删除特定的尾随字符,在这种情况下是破折号?

提前致谢.

php regex

3
推荐指数
1
解决办法
1万
查看次数

用同行代替口音

出于某种原因(这是一个很长的故事)我需要用他们的'普通'对应物改变口音.

我这样做:

$array = array(
            'ò' => 'o',
            'ó' => 'o',
            'à' => 'a',
            'è' => 'e',
            'é' => 'e',
            'ù' => 'u',
            );
return str_replace(array_keys($array), array_values($array), $string);
Run Code Online (Sandbox Code Playgroud)

但它不起作用(正常的字母就像一个魅力)我认为这是一个编码问题,还有另一种方法吗?我怎样才能解决这个问题?

谢谢.

php string encoding

3
推荐指数
1
解决办法
4106
查看次数

在PHP中将名称转换为URL友好的字符串?

可能重复:
PHP中的URL友好用户名?

我有这样的事情:

'mrt1' => 'Zhongxiao Dunhua Sun'
Run Code Online (Sandbox Code Playgroud)

这将被包含在这样的锚链接中:

<a href="'. $mrt1 .'">'. $mrt1 .'</a>
Run Code Online (Sandbox Code Playgroud)

我希望输出是这样的:

<a href="zhongxiao-dunhua-sun">Zhongxiao Dunhua Sun</a>
Run Code Online (Sandbox Code Playgroud)

如何做到这一点,以便我可以将该名称转换为URL-frienly字符串(所以我可以将它放在href属性中)?

php

3
推荐指数
1
解决办法
7976
查看次数

清理网址和数据库

在我的数据库中有一个URL列是否可以存储URL,例如:/ this-is-a-keyword

然后在我的php查询中使用该列来获取我需要的信息而不是使用整数列?

所以基本上当我去Mysite.com/ 这是一个关键字时,我会从那一行返回结果.

php database url

2
推荐指数
1
解决办法
522
查看次数

使字符串"URL安全"

可能重复:
PHP中的URL友好用户名?

有没有办法使字符串"URL安全",这意味着用连字符替换空格,删除任何标点符号并将所有大写字母更改为小写?

例如:

"This is a STRING" -› "this-is-a-string"
Run Code Online (Sandbox Code Playgroud)

要么

"Hello World!" –› "hello-world"
Run Code Online (Sandbox Code Playgroud)

php string

2
推荐指数
1
解决办法
9637
查看次数