所以,我看到一吨在本站的“解决方案”,但没有人似乎为我工作充分。 我想从一个职位名称中去除所有的标点,以使系统可以动态创建每篇文章的网址。 我发现大卫·沃尔什的文章,就如何可以做到这一点教程一步提供了一步。 然而,并非一切都被剥夺。 下面是文章(以防万一)链接: http://davidwalsh.name/php-seo 。
下面是我修改删除所有标点的代码:
$return = trim(preg_replace('/[^a-z0-9]+/i'," ", strtolower($post_name)));
下面是一个例子职位名称: 测试的,这更多!
结果当我赞同的网址:测试-039-S-这个放大器,more.php
我不知道为什么它保存的HTML代码的符号和单引号。 有任何想法吗?!?
看起来像数据通过运行htmlspecialchars()
或htmlentities()
的地方。 撤消与htmlspecialchars_decode()
或html_entity_decode()
第一:
$return = trim(preg_replace('/[^a-z0-9]+/i'," ", strtolower(htmlspecialchars_decode($post_name))));
/**
* prepares a string optimized for SEO
* @see https://blog.ueffing.net/post/2016/03/14/string-seo-optimieren-creating-seo-friendly-url/
* @param String $string
* @return String $string SEO optimized String
*/
function seofy ($sString = '')
{
$sString = preg_replace('/[^\\pL\d_]+/u', '-', $sString);
$sString = trim($sString, "-");
$sString = iconv('utf-8', "us-ascii//TRANSLIT", $sString);
$sString = strtolower($sString);
$sString = preg_replace('/[^-a-z0-9_]+/', '', $sString);
return $sString;
}
// Example
seofy("Testing's, this & more!"); // => testing-s-this-more
@看到
- https://blog.ueffing.net/post/2016/03/14/string-seo-optimieren-creating-seo-friendly-url/
- http://php.net/manual/en/function.preg-replace.php#122374