필자가 필요로하는 기능을 수행하는 PHP 함수가 있지만 지금은 실패 할 가능성이 있음을 발견했습니다. 나는 모드 재 작성을 사용하여 URL을 재 작성하고이 함수가 작동하도록 URL을 다시 작성해야합니다. 두 페이지가 동일하지 않더라도 같은 페이지로 다시 작성되면 실패 할 수 있습니다.URL 및 쿼리 데이터베이스의 PHP breadcrumbs
이 함수는 url을 읽고 /를 구분 기호로 사용하여 부분으로 분할합니다.
내가 할 수 있기를 원하는 것은 URL에 'forum'이라는 단어가 있는지 확인하고 쿼리의 다음 url 부분을 사용하여 데이터베이스를 쿼리하는지 확인하는 것입니다.
http://www.mydomain.com/forum/1/2/6과 같은 URL이 있다고 말하면서 1과 2를 얻고 싶습니다. 내 질문은 boardid와 topicid가됩니다. 마지막 비트는 페이지 번호입니다.
이것은 일반적으로 http://www.mydomain.com/topic.php?boardid=1&topicid=2&pagenum=6처럼 보이지만 기능이 없으면 /를 사용할 수 없기 때문에 다시 쓸 수없는 URL입니다.
내가 할 수있는 일은 충분히 간단합니다. URL을 확인하고 '포럼'이 있는지 확인한 다음 쿼리를 수행합니다. 그것이 URL에 없다면 정상적으로 계속하십시오. 여기
내 PHP는 이동 경로function breadcrumb(
$home = 'Home', // Name of root link
$division = '/', // Divider between links
$hidextra = true, // Toggle hide/show get data and fragment in text
$index = false, // Toggle show/hide link to directory if it does not contain a file
$indexname = 'index.php' // The definition of the file the directory must contain
) {
$breadcrumb="";
// Requested addons...
$extension = '.php'; // Extension to cut off the end of the TEXT links
$ifIndex = 'index.php'; // Filename of index/default/home files to not display
// End requested addons
$whole = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if(stristr($whole,"contact-bidder")) {
$whole = substr($whole,0,strrpos($whole,'/'));
}
$parts = explode('/', $whole);
$parts[0] = 'http://'.$parts[0];
$array = array('-', '%20');
$breadcrumb .= "<a href=\"{$parts[0]}\">{$home}</a>{$division}";
$k = 1;
for ($i=1;$i < sizeof($parts);$i++) {
$uri = '/';
while ($k <= $i) {
$uri .= $parts[$k];
if ($k != (sizeof($parts)-1)) $uri .= '/';
$k++;
}
if (($index && is_dir($_SERVER['DOCUMENT_ROOT'].$uri) && is_file($_SERVER['DOCUMENT_ROOT'].$uri.$indexname)
|| !$index
|| !is_dir($_SERVER['DOCUMENT_ROOT'].$uri)) && $parts[$i] != $ifIndex) {
$breadcrumb .= "<a href=\"$uri\">";
if ($hidextra) {
$breadcrumb .= rtrim(preg_replace("/\?.*$/", '', ucwords(str_replace($array," ",$parts[$i]))), $extension);
}
else {
$breadcrumb .= rtrim(ucwords($parts[$i]), $extension);
}
$breadcrumb .= '</a>';
}
else {
$breadcrumb .= ucwords(str_replace($array," ",$parts[$i]));
}
if (isset($parts[($i+1)])) {
$breadcrumb .= $division;
}
$k = 1;
}
return $breadcrumb;
}
그것이 불가능하거나 쉽지 않은 경우 코드입니다, 내가에 분할 할 수있는 방법은 무엇입니까? 그리고 & 그리고 전에 무엇입니까? 및 이후 = URL의 각 변수에 대해
감사합니다 ... 나는 쿼리 문자열에서 얻는 방법에 대해 알고 있습니다. 쿼리 문자열에있는 내용을 데이터베이스에있는 내용으로 바꿉니다. 나는 당신의 아이디어와 비슷한 체크 아웃 이론을 가지고 있습니다. – AdRock