Я хочу написать PHP-скрипт, который выполняет код на иностранном веб-сайте так же, как с помощью JS-консоли на этой веб-странице. Я не хочу, чтобы сервер действовал как клиент на этой определенной веб-странице.
Чтобы сделать это еще сложнее, JavaScript должен выполняться в другом фрейме (при выполнении JavaScript вручную я переключился бы на нужную консоль, щелкнув конкретный фрейм в раскрывающемся меню над консолью (Chrome)).
Если я попытаюсь сделать что-то почти невозможное здесь, пожалуйста, не стесняйтесь сказать мне именно это.
Вы должны попытаться описать, какова ваша конечная цель. Вы, вероятно, идете по неверному пути здесь. Нет способа добавить JavaScript на страницу, которую вы не обслуживаете сами.
Если я понимаю, что вы имеете в виду (и более подробно здесь очень поможет). Вы хотите автоматизировать то, что вы можете сделать вручную в браузере, вручную запустив javascript на веб-странице (через консоль). Единственная причина, по которой я могу подумать, что вы захотите сделать это, состоит в том, чтобы инициировать запрос Ajax / вызов API или отправить форму.
Технически это возможно, но было бы лучше найти реальный API, с которым вы можете напрямую общаться; Вы можете сделать это, проверив вкладку сети инструментов разработчика, но если у них нет общедоступного API, вам, возможно, придется приложить немало усилий, чтобы подделать запрос; и если что-то изменится на сервере, все это может перестать работать.
Если у них нет API, который вы можете вызвать, или если они приняли меры. Тогда есть большая вероятность, что вы пытаетесь использовать веб-сайт не по назначению; и они вполне могут принять дальнейшие меры, чтобы остановить вас (вот почему существуют капчи).
Если вы можете выяснить детали запроса на отправку, вы можете использовать CURL, чтобы сделать запрос — эта страница может помочь: https://davidwalsh.name/curl-post
Если вы все еще находите, что вам нужно / нужно на самом деле запускать javascript на удаленной странице, то это «автоматизация браузера», и хотя технически это может быть вызвано из PHP — требуется гораздо больше, чтобы сделать это возможным. Selenium в основном используется для автоматизации тестов, но позволит вам сделать это: http://www.seleniumhq.org/ через JavascriptExecutor, но я бы порекомендовал вам выполнить дальнейший поиск учебных пособий, так как он слишком большой / широкий, чтобы его можно было здесь охватить:
https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/JavascriptExecutor.html