我从WP帖子中获得了“联系表格7”的内容。它看起来像这样:
Your Name (required)
[text* your-name]
Your Email (required)
[email* your-email]
Subject
[text your-subject]
Your Message
[textarea your-message]
[submit "Send"]
我需要通过正则表达式将此内容分解为数组。在过程结束时,它应该如下所示:
$arr = array (
'text* your-name',
'email* your-email',
'text your-subject',
'textarea your-message',
'submit "Send"',
)
有没有人知道如何使用正则表达式或其他任何方式来做到这一点? 谢谢:))
答案 0 :(得分:2)
(?<=\[)([^\]]+)
试试这个。抓住捕获。参见演示。
http://regex101.com/r/yP3iB0/8
$re = ""(?<=\\[)([^\\]]+)"";
$str = "Your Name (required)\n[text* your-name]\n\nYour Email (required)\n[email* your-email]\n\nSubject\n[text your-subject]\n\nYour Message\n[textarea your-message]\n\n[submit \"Send\"]";
preg_match_all($re, $str, $matches);
答案 1 :(得分:0)
注意:很抱歉回答很久以前生成的该线程,但这肯定会对其他人有所帮助。
大多数开发人员在开发与CF7相关的任务时,都需要字段的类型和名称,但是通常由于自定义帖子类型而无法将表单存储为内容,因此他们无法抓取。
因此要获取类型,名称,基本类型等,您需要获取所有联系表。 您需要遍历每个联系表单帖子,并在下面的扫描功能中将表单内容作为参数传递
foreach($form as $objForm){
$manager = WPCF7_FormTagsManager::get_instance();
$tags = $manager->scan( $objForm->form );
$filter_result = $manager->filter( $tags, $cond );
foreach ($filter_result as $key => $value) {
echo $value->type;
echo $value->name;
}
}
希望这对其他人有帮助:)