Извлечение JS из html с помощью preg_match

#javascript #php #regex

#javascript #php #регулярное выражение

Вопрос:

Мне просто нужно извлечь client_token значение из HTML — кода.Вот моя попытка до сих пор

 preg_match("#var client_token(.*)=(.*)'(.*?)'#is",  $html, $match);
 

Комментарии:

1. /var client_token = '(.*?)';/

2. @Mohammad отправьте сообщение в качестве ответа, чтобы я мог принять

3. Пожалуйста, отметьте один ответ, чтобы закончить это обсуждение.

Ответ №1:

Используйте s вместо .*, чтобы избежать случайного сопоставления:

 preg_match("#var client_tokens*=s*'(.*?)'#is",  $html, $match);
 

Ответ №2:

Если html-код является постоянным, вы можете использовать нижний код.

 preg_match("/var client_token = '(.*?)';/",  $html, $match);
 

Но если space и qoute неизвестно, используйте это

 preg_match("/vars client_tokens*=s*['|"](.*?)['|"]s*;/",  $html, $match);
 
  1. s сопоставление одного / нескольких пробелов
  2. s* совпадение нет / один / несколько пробелов
  3. ['|"] совпадение ' или "

Ответ №3:

Это самый компактный и простой для понимания:

 preg_match("/client_token[^']*'([^']*)/",  $html, $match);
 

Протестировано и объяснено здесь .