Как я могу выяснить в массиве каждый элемент содержит определенное слово? - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь добавить слово в каждый элемент массива.Но один из элементов имеет это слово.Вот и я хочу передать это и добавить слово другие элементы.

Вот мой массив.

string(56) "//sumai.tokyu-land.co.jp/bukken/detail/index/id/K4810000"
[1]=>
string(56) "//sumai.tokyu-land.co.jp/bukken/detail/index/id/K4780000"
[2]=>
string(56) "//sumai.tokyu-land.co.jp/bukken/detail/index/id/K4720000"
[3]=>
string(56) "//sumai.tokyu-land.co.jp/bukken/detail/index/id/K4760000"
[4]=>
string(62) "https://sumai.tokyu-land.co.jp/bukken/detail/index/id/K4770000"
[5]=>
string(56) "//sumai.tokyu-land.co.jp/bukken/detail/index/id/K4740000"

Четвертый имеет https:, а другой - нет.Я хочу добавить все http: все из них.

$http = 'https:';

foreach($iframeLink as $value)
{
    if (!$value contains 'http')
        $iframe[] = $http.$value;
}

Contains не работает.Это простая вещь, но я не мог понять это.Любая помощь?Спасибо!

Ответы [ 4 ]

0 голосов
/ 07 октября 2018

Используйте substr() для выбора специальной части строки и проверьте, является ли https или нет.

$http = 'https:';
foreach($iframeLink as $key=>$value){
    if (substr($value, 0, 6) != $http)
        $iframe[] = $http.$value;
}

Результат проверки в демо

0 голосов
/ 07 октября 2018

Вы можете разобрать URL и проверить его схема

$http = 'https:';
foreach($iframeLink as $value)
{
    $parsedUrl = parse_url($value);
   if ($parsedUrl['scheme']!='http') {
     $iframe[] = $http.$value;
   }
}
0 голосов
/ 07 октября 2018

В laravel есть вспомогательная функция str_contains()

foreach($iframeLink as $value)
{
    if (str_contains($value, 'https:')) $iframe[] = $http.$value;
}
0 голосов
/ 07 октября 2018

Вы можете использовать функцию stripos().Он находит первое вхождение данной подстроки в строке.Итак, если stripos($value,'https:') возвращает false;это в основном подразумевает, что строка $value не содержит 'https:'

foreach($iframeLink as $value)
{
    if ( stripos($value,'https:') === false )
        $iframe[] = $http.$value;
}

Теперь есть вероятность, что 'https: может существовать в других позициях в строке.И вам нужно добавлять 'https: только тогда, когда он не находится в начале данной строки.В этом случае вы можете попробовать следующее:

foreach($iframeLink as $value)
{
    if ( stripos($value,'https:') > 0 )
        $iframe[] = $http.$value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...