Я пытаюсь преобразовать все значения в url в нижний регистр и дефис. однако, когда он преобразуется в нижний регистр и дефис, он не собирает запись, иначе он собирает штраф с% 20. я бы хотел, чтобы ваши отзывы были правильными, или что-то еще мне нужно сделать. Я проверил php и массивы, и они кажутся мне прекрасными.после преобразования в нижний регистр и дефис, запись не собрана
example.com/user/kate/baked/cake
> переходит на страницу описания
example.com/user/kate/baked/Lovely%20Chocolate%20Cake
> переходит на страницу описания
example.com/user/kate/baked/lovely-chocolate-cake
> это не идет на странице описания (это когда я использую код для преобразования в нижний регистр и дефис)
Код Ниже
HTAccess
RewriteRule ^user/.*[A-Z\ ] linkchange.php?l=%{REQUEST_URI} [L]
RewriteRule ^user/([a-z]+)/baked/([a-z.*0-9_-]+)$ cakes.php?id=$1&baked=$2
ссылка изменение PHP
<? $link = $_GET['l']; $newlink = strtr($link," ABCDEFGHIJKLMNOPQRSTUVWXYZ","-abcdefghijklmnopqrstuvwxyz"); header("Location: http://www.example.com". $newlink,TRUE,301); exit; ?>
** торты PHP ** `
<?php
$cakesmade = array();
$cakesmade = array(
"kate" => array(
"cake" => array(
"cakeingredients" => "egg, flour"),
"Lovely Chocolate Cake" => array(
"cakeingredients" => "chocolate, eggs, flour"),
"amazing cake" => array(
"cakeingredients" => "lemons, flour")
),
);
?>
<?php foreach($cakesmade as $id => $donecake)
foreach($donecake as $bakedcake => $description)
{ echo "<a href='user/$id/baked/{$bakedcake}'>{$bakedcake}</a><br>";
}
?>
// this part should appear once the user and variable are set in the url
The selected cake is: <?php if(isset($bakedcake)) { echo $bakedcake; } else { echo "not set"; } ?> by <?php if(isset($id)) { echo $id; } else { echo "not set"; } ?>`
благодаря croisés до сих пор за то, чтобы помочь мне понять вещи.
спасибо, это гораздо более простой способ преобразования в нижний регистр. этот ресурс интенсивный, если сказать, что это внутри цикла foreach? проблема, связанная с тем, что после преобразования URL в нижний регистр значение в массиве по-прежнему остается заглавным «Lovely Chocolate Cake», я пытаюсь его собрать, хотя URL-адрес теперь в нижнем регистре. Есть ли способ обойти это? и является ли он ресурсоемким? – user3108623
извините за поздний ответ, конечно, значение в массиве не изменится, потому что мы применяем strtolower по значению ссылки, а не к массиву, если вы хотите, чтобы в нижнем регистре все значения массива вы могли использовать array_map (см. руководство: http://php.net/manual/en/function.array-map.php), но я вижу, что вы тоже используете ключ ассоциативного ключа, поэтому я думаю, что самый простой способ уменьшить регистр ключей находится в цикле, или вы можете проверить функцию array_reduce. – teeyo
И, говоря о ресурсах, конечно, меньше функций означает меньшее использование памяти и меньшее время выполнения, но мы не должны обсуждать проблемы оптимизации или эффективности, если нет реальной проблемы, попытайтесь реализовать решение и посмотрите, достаточно ли он для вас, если а не начинать думать об оптимизации. Удачи. – teeyo