问题:如何从<div class="test">
PHP 变量中的 HTML 标签获取“内容”:
$str = '<HTML><h1>Заголовок</h1><div class="test">Содержимое</div><div></div></HTML>';
解决方案越简单越好。 “逐字符”修剪的选项不是一个选项,因为剪切发生在 HTML 页面中,不知道哪个字符在帐户中的位置
问题:如何从<div class="test">
PHP 变量中的 HTML 标签获取“内容”:
$str = '<HTML><h1>Заголовок</h1><div class="test">Содержимое</div><div></div></HTML>';
解决方案越简单越好。 “逐字符”修剪的选项不是一个选项,因为剪切发生在 HTML 页面中,不知道哪个字符在帐户中的位置
项目结构:
docker-compose 文件:
version: '3'
services:
php_laravel:
image: devilbox/php-fpm:8.2-work
container_name: php_laravel
volumes:
- ./www:/var/www/default/htdocs/
ports:
- 9000
restart: always
nginx_laravel:
image: devilbox/nginx-stable:latest
container_name: nginx_laravel
links:
- php_laravel
environment:
- PHP_FPM_ENABLE=1~
- PHP_FPM_SERVER_ADDR=php_laravel
volumes:
- ./www:/var/www/default/htdocs/
- ./conf/localhost.conf:/etc/httpd/conf.d/localhost.conf
- ./log:/var/log/nginx-stable/
ports:
- 82:80
restart: always
在WWW文件夹中有一个 Laravel 项目,其中包含文件夹app、public、storage .. 等,如何正确实现对主机上的文件夹以及容器中的文件夹(如果需要)的权限,因为我使用php_laravel容器中的artisan,当我创建控制器等时就会出现问题。通过 artisan 从容器中,phpstorm 说它没有权限编辑此文件,storage/framework文件夹和bootstrap/cache文件夹也有问题,谢谢
你能告诉我是否可以将文件放在主 php 目录之外吗?
例如,我有一个包含类的文件,路径为 t2.php
<?php
class Test {
...
}
?>
在另一个文件 t1.php 中,我使用 use 语句来访问位于 t2.php 中的类。只要这两个文件都位于主目录中,一切都会正常运行,但我不知道如何正确删除该类的文件,以便一切正常运行。
我尝试dirname(__DIR__, 1)
在使用中写它,但没有帮助=(
这个问题有什么解决办法吗?
<?
function request($url, $method = 'GET', $fields = null, $cookiesPath = null, $keepCookies = true) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if (strtoupper($method) === 'GET' && $fields) {
$url .= '?' . http_build_query($fields);
curl_setopt($ch, CURLOPT_URL, $url);
} else if (strtoupper($method) === 'POST') {
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length: ' . strlen(json_encode($fields))
]);
}
if (!$cookiesPath) {
$cookiesRandomName = substr(str_shuffle(str_repeat('0123456789abcdefghijklmnopqrstuvwxyz', ceil(30 / 36))), 0, 30);
$cookiesPath = __DIR__ . $cookiesRandomName . '.txt';
}
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiesPath);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiesPath);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
$response = curl_exec($ch);
if ($errorCode = curl_errno($ch)) {
$errorMessage = curl_error($ch);
curl_close($ch);
if (file_exists($cookiesPath)) {
unlink($cookiesPath);
}
return [ 'error' => [ 'code' => $errorCode, 'message' => $errorMessage ] ];
}
$HTTP_CODE = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($keepCookies) {
return [ 'HTTP_CODE' => $HTTP_CODE, 'response' => json_decode($response, true), 'cookiesPath' => $cookiesPath ];
} else {
if (file_exists($cookiesPath)) {
unlink($cookiesPath); // Место ошибки
}
return [ 'HTTP_CODE' => $HTTP_CODE, 'response' => json_decode($response, true) ];
}
}
我正在编写一个 PHP 脚本,它使用 request() 函数发出 HTTP 请求。在此函数内,我尝试使用 unlink() 删除临时 cookie 文件,但尽管该函数返回成功删除消息,但该文件仍存在于磁盘上。使用示例:
$response = request('https://example.com/login', 'post', [ 'login' => 'name', 'password' => 'hash' ]);
$response = request('https://example.com/profile', 'get', null, $response['cookiesPath'], false);
令人惊讶的是,当 unlink() 在函数外部使用时,不会发生此类事件。一般来说,有趣的行为和最大的陌生感。使用适用于 Windows 11 的 XAMPP。还在 Apache/2.4.6 上的托管上进行了测试。
我在注册新帐户时正在写用户电子邮件的确认信息
一切都按照以下原则进行:我们接收用户的电子邮件,创建一个 10000 - 99999 之间的随机数,使用此代码创建 cookie 并通过电子邮件将代码发送给他
$user_email = trim(filter_var($_POST['email'], FILTER_SANITIZE_EMAIL));
$code = trim(rand(10000, 99999));
setcookie("code", $code, time() + 60 * 5, "/lib/check_mail.php");
mail($user_email, 'Код подтверждения адреса Эл.Почты', $code);
header('Location: /lib/check_mail.php');
在下一个窗口中,我们将用户输入的代码与通过电子邮件发送的代码进行比较
$code = $_POST['code'];
$user_code = $_COOKIE['code'];
if ($code == $user_code){
// Код введен верно
} else {
// Код введен НЕ верно
}
问题:此代码的安全性和最新程度如何?如何使检查用户的电子邮件更加相关和安全?