Php 段塞输入字段检查功能不可用';我不能正常工作
我的slug url是由标题组成的,所以我有基本的slug函数,我自己的一个负责检查slug输入字段是否为空并执行一些操作,但它不能正常工作。。也许有人知道我做错了什么 下面是基本的slug函数:Php 段塞输入字段检查功能不可用';我不能正常工作,php,function,Php,Function,我的slug url是由标题组成的,所以我有基本的slug函数,我自己的一个负责检查slug输入字段是否为空并执行一些操作,但它不能正常工作。。也许有人知道我做错了什么 下面是基本的slug函数: function slug($text){ // replace non letter or digits by - $text = preg_replace('~[^\pL\d]+~u', '-', $text); // transliterate $text
function slug($text){
// replace non letter or digits by -
$text = preg_replace('~[^\pL\d]+~u', '-', $text);
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// trim
$text = trim($text, '-');
// remove duplicated - symbols
$text = preg_replace('~-+~', '-', $text);
// lowercase
$text = strtolower($text);
if (empty($text)) {
return 'n-a';
}
return $text;
}
function filterSlug($ax, $bx){
if(isset($_POST[$ax]) && $_POST[$ax] != ''){
$ax = slug($ax);
} else {
$ax = slug($bx);
}
return $ax;
}
下面是我编写的函数(无法正常工作):
我说:
filterSlug($postSlug, $postTitle);
以下是我在其他页面中复制的代码:
if(isset($_POST['postSlug']) && $_POST['postSlug'] != ''){
$postSlug = slug($postSlug);
} else {
$postSlug = slug($postTitle);
}
这个工作正常 您必须从函数返回某些内容:
function slug($text){
// replace non letter or digits by -
$text = preg_replace('~[^\pL\d]+~u', '-', $text);
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// trim
$text = trim($text, '-');
// remove duplicated - symbols
$text = preg_replace('~-+~', '-', $text);
// lowercase
$text = strtolower($text);
if (empty($text)) {
return 'n-a';
}
return $text;
}
function filterSlug($ax, $bx){
if(isset($_POST[$ax]) && $_POST[$ax] != ''){
$ax = slug($ax);
} else {
$ax = slug($bx);
}
return $ax;
}
您必须从函数返回某些内容:
function slug($text){
// replace non letter or digits by -
$text = preg_replace('~[^\pL\d]+~u', '-', $text);
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// trim
$text = trim($text, '-');
// remove duplicated - symbols
$text = preg_replace('~-+~', '-', $text);
// lowercase
$text = strtolower($text);
if (empty($text)) {
return 'n-a';
}
return $text;
}
function filterSlug($ax, $bx){
if(isset($_POST[$ax]) && $_POST[$ax] != ''){
$ax = slug($ax);
} else {
$ax = slug($bx);
}
return $ax;
}
但是您在
filterSlug
中没有返回任何内容,您只需更改本地值,该值随后丢失。如果您的PHP足够新,我建议将filterSlug
替换为:$postSlug=slug($\u POST['postSlug']??$postTitle)
但是您在filterSlug
中没有返回任何内容,您只需更改本地值,该值随后丢失。如果您的PHP足够新,我建议将filterSlug
替换为:$postSlug=slug($\u POST['postSlug']?$postTitle)代码>返回$ax;函数仅在字段不为空时起作用?这一行:$postslaug=slug($_POST['postslaug']??$postTitle);带到:slug函数:返回'n-a';如果$ax和$bx为空,函数将返回n-a
。尝试echo filterSlug($postSlug,$postTitle)
如果我将postSlug字段保留为空,则此项应该可以工作($postSlug=slug($postTitle);),但它不工作?您的签入筛选器签入函数是一个动态检查:如果(isset($\u POST[$ax])&&$\u POST[$ax]!=“”
。试着转换成:if(isset($\u POST['postslaug'])和&$\u POST['postslaug']!=”)
并告诉我它是否执行了返回$ax的trickw;函数仅在字段不为空时起作用?这一行:$postslaug=slug($_POST['postslaug']??$postTitle);带到:slug函数:返回'n-a';如果$ax和$bx为空,函数将返回n-a
。尝试echo filterSlug($postSlug,$postTitle)
如果我将postSlug字段保留为空,则此项应该可以工作($postSlug=slug($postTitle);),但它不工作?您的签入筛选器签入函数是一个动态检查:如果(isset($\u POST[$ax])&&$\u POST[$ax]!=“”
。试着转换成:if(isset($\u POST['postslaug'])和&$\u POST['postslaug']!=”)
并告诉我是否成功