당신은 간단하게 다음과 같은 코드를 사용할 수 있습니다 : 인수가 숫자 인 경우
<?php
$arg1 = arg(1);
$arg2 = arg(2);
// Check arg(1) is not empty, or is_numeric() returns TRUE for NULL.
return (arg(0) == 'video' && !empty($arg1) && !is_numeric($arg1) && empty($arg2));
?>
KingCrunch 이미 말했듯이, is_nan()
이 TRUE
을 반환하지 않습니다. 보고 한 코드에 또 다른 오류가 있습니다. empty()
은 PHP documentation에보고 된 바와 같이 변수에만 사용할 수 있습니다.
empty()
변수 만 검사하면 구문 분석 오류가 발생합니다. 즉, 다음은 작동하지 않습니다 : empty(trim($name))
.
내가보고 한 코드는 "video/video1"과 같은 경로의 블록을 보여줍니다. "video/video1/edit"와 같은 경로에도 블록을 표시하려면 다음 코드를 사용해야합니다.
<?php
$arg1 = arg(1);
return (arg(0) == 'video' && !empty($arg1) && !is_numeric($arg1));
?>
찾고있는 경로가 경로 별칭 인 경우 arg()
을 사용하면 작동하지 않습니다. "video/video1"이 "node/10"의 경로 별칭이라고 가정합니다. 이 경우 arg(0)
은 "노드"를 반환하고 arg(1)
은 "10"을 반환합니다. "node/10"과 같을 $_GET['q']
에 대해서도 마찬가지입니다."
드루팔, 그 부트 스트랩 동안, 다음 코드를 사용하여 $_GET['q']
를 초기화하기 때문에이 문제가 발생 : 당신이 확인하는 것은 경로 별명을 당신 경우
// Drupal 6.
if (!empty($_GET['q'])) {
$_GET['q'] = drupal_get_normal_path(trim($_GET['q'], '/'));
}
else {
$_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
}
// Drupal 7.
if (!empty($_GET['q'])) {
$_GET['q'] = drupal_get_normal_path($_GET['q']);
}
else {
$_GET['q'] = drupal_get_normal_path(variable_get('site_frontpage', 'node'));
}
는, 당신은 다음을 사용한다 코드 :
// Drupal 6.
$arg = explode('/', drupal_get_path_alias($_GET['q']);
return (arg[0] == 'video' && !empty($arg[1]) && !is_numeric(arg[1]) && empty($arg[2]));
// Drupal 7.
$arg = explode('/', drupal_get_path_alias();
return (arg[0] == 'video' && !empty($arg[1]) && !is_numeric(arg[1]) && empty($arg[2]));
정확히 작동하지 않는 것은 무엇입니까? 인수 변수에는 무엇이 들어 있습니까? –
해당 코드는 어디에 사용합니까? 후크 구현에서 사용하고 있습니까, 아니면 모듈을 표시해야하는지 결정하는 PHP 코드로 사용하고 있습니까? URL이 무엇을 기대합니까? – kiamlaluno
사과, 이것은 '페이지 별 공개 설정'아래의 블록에 대한 것입니다. 인수 :/video/video1은/video/1/video/1/... 블록을 나타내야합니다. – atb