в порядке,
У меня есть такая ссылка
$url = "http://www.foo.com/foo/Dynamic_Words_Here/_/Some Text in Here";
Я могу изменить значения (Некоторый текст здесь) с
$search = array('OR', 'OF', 'ON', 'IN', 'AND', 'The');
$replace = array('or', 'of', 'on', 'in', 'and', 'the');
$smad= str_replace($search, $replace, $smad);
Но иногда («Some» -> First Word) часть строки может начинаться с «The», а скрипт выше меняет его на «the», но я не хочу, чтобы он использовался в каждом случае …
Мне нужен другой массив ТОЛЬКО для первого слова строки, и это может вызвать переопределение с другим массивом для остальной части строки, я не знаю, как это сделать.
—> РЕДАКТИРОВАТЬ -> Чтобы быть более конкретным, проблема в том, что я получаю некоторые результаты из Api Youtube для поиска, а затем я ищу в заголовке результата на другом веб-сайте, но этот веб-сайт иногда не соответствует моим поисковым словам. Вот почему я хочу это и пример:
$url = "searchthissite.com/_/search Me Now";
-> [My YouTube Search Title] должно быть ->
$url = "searchthissite.com/_/Search me Now";
-> [Что хочет сайт]
Так что мне нужно 1 массив для первого слова и другой массив для остальной части
строка.
<?php
$str = "http://www.foo.com/foo/Dynamic_Words_Here/_/in Some Text in Here";
$test= "in";
if (preg_match("/\b$test\b/", $str)) {
$search = array('in');
$replace = array('In');
$str= str_replace($search, $replace, $str);
echo $str;
}
?> // OUTPUT IS http://www.foo.com/foo/dynamic/_/In Some Text In Here
// I need this for First Word Only and ANOTHER for The Rest of The String.
Спасибо.
Это не CURL, который чувствителен к регистру. Это HTTP. домен а также схема части URL являются нечувствительный к регистру, потому что они обрабатываются клиентом UA и DNS, но дорожка часть URL чувствителен к регистру потому что это обрабатывается непосредственно удаленным хостом.
https://www.google.com/about это определенно не то же самое, что https://www.google.com/About потому что сервер ожидает /about
и не /About
,
Я не совсем понимаю, как вы пришли к проблеме с неправильным регистром URL во-первых, поэтому неясно, как решить эту основную проблему.
Однако то, что вы пытаетесь сделать, это то, что PHP ucfirst()
Функция, вероятно, может сделать для вас в сочетании с strtolower()
.
echo ucfirst(strtolower("Some Text in Here")); // Some text in here
strtolower
сначала норамлизирует строку для всех строчных букв, а затем ucfirst
повернет только первый символ в строке в верхний регистр. Вы можете принять во внимание многобайтовые символы, так как эта функция работает с вашей локалью. Увидеть setlocale()
для деталей.
Других решений пока нет …