За последние 24 часа нас посетили 20827 программистов и 1135 роботов. Сейчас ищут 328 программистов ...

Parse error: syntax error, unexpected 'http' (T_STRING)

Тема в разделе "PHP для новичков", создана пользователем kinlok, 24 ноя 2019.

  1. kinlok

    kinlok Активный пользователь

    С нами с:
    18 мар 2017
    Сообщения:
    50
    Симпатии:
    0
    в чем тут ошибка
    PHP:
    1. if(preg_match("/src="http(?:s)?:\/\/www.youtube.com|src="http:\/\/youtube.com/i", 'src=".$good_video_lnk)){
    2.                    $good_video_lnk = str_replace(array('#', '!'), '', $good_video_lnk);
    3.                    $exp_y = explode('v=', $good_video_lnk);
    4.                     $exp_x = explode('&', $exp_y[1]);
    5.                     $result_video_lnk = '<iframe width="770" height="420" src="http://www.youtube.com/embed/'.$exp_x[0].'" frameborder="0" allowfullscreen></iframe>';
    6.                 }
    жалуется на
    Код (Text):
    1.  if(preg_match("/src="http(?:s)?:\/\/www.youtube.com|src="http:\/\/youtube.com/i", 'src=".$good_video_lnk)){
     
  2. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Может он кавычки просит за экранировать? \"http
     
    Roman __construct нравится это.
  3. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    именно это он и просит :)

    ТС, разберитесь с кавычками в шаблоне, а лучше как-то переформулируйте выражение - там сам черт ногу сломит))
     
  4. kinlok

    kinlok Активный пользователь

    С нами с:
    18 мар 2017
    Сообщения:
    50
    Симпатии:
    0
    спасибо помогло теперь другая ошибка $exp_y = explode('v=', $good_video_lnk);

    Parse error: syntax error, unexpected '$exp_y'
     
  5. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    Это значит что не до конца разобрались с кавычками

    Вы бы лучше сказали какой вам результат нужен - вам какая-нить добрая душа (их здесь много))) написала бы код))

    Это намного проще и быстрее
     
    yanuzay нравится это.
  6. yanuzay

    yanuzay Активный пользователь

    С нами с:
    28 мар 2018
    Сообщения:
    497
    Симпатии:
    57
    слеши все экранировал?
    вместо:
    http:\/\/youtube.com/i
    должно быть
    http:\/\/youtube.com\/i
     
  7. _ne_scaju_

    _ne_scaju_ Старожил

    С нами с:
    25 ноя 2016
    Сообщения:
    2.149
    Симпатии:
    118
    PHP:
    1. if(preg_match("/src=\"http(?:s)?:\/\/www.youtube.com|src=\"http:\/\/youtube.com/i", 'src=".$good_video_lnk."')){...}
     
  8. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    нене, это ограничитель шаблона

    ############################

    вообще, ТС, можно было взять, например, % или | в качестве ограничителей - и сами бы не путались, и других не путали :D
    --- Добавлено ---
    ...а вообще, чем дурью страдать)) лучше вот:

    https://stackoverflow.com/questions/13476060/validating-youtube-url-using-regex

    прошу ознакомиться с вариантами

    народ там правильные альтернативы предлагает, типа:

    PHP:
    1. $parts = parse_url($url);
    2. if ($parts['host'] == 'youtube.com' && ...) {
    3.    // your code
    4. }
     
  9. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    А почему у тебя после запятой
    PHP:
    1. , 'src=".$good_video_lnk
    стоят 2 разные кавычки?