Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从一篇大文章中抽出一部分_Php_String_Function_Text_Strstr - Fatal编程技术网

Php 从一篇大文章中抽出一部分

Php 从一篇大文章中抽出一部分,php,string,function,text,strstr,Php,String,Function,Text,Strstr,假设我们有一个字符串($text) 我会帮你的,如果你看到这条消息,永远不要忘记这些废话 我想将文本从“”到“”转换成一个新字符串($text2) 如何做到这一点 我很感激能得到的任何帮助。谢谢 编辑: 我想要这样的代码 <embed type="application/x-shockwave-flash"></embed> strip_标签($text,”); 将仅提取 如果这是你想要的行为。使用这个坏mofo: 在这里,您可以遍历每一个,或者如果您知道只有一个

假设我们有一个字符串($text)

我会帮你的,如果你看到这条消息,永远不要忘记这些废话
我想将文本从“
”到“
”转换成一个新字符串($text2) 如何做到这一点

我很感激能得到的任何帮助。谢谢

编辑: 我想要这样的代码

<embed type="application/x-shockwave-flash"></embed>

strip_标签($text,”);
将仅提取

如果这是你想要的行为。

使用这个坏mofo:

在这里,您可以遍历每一个,或者如果您知道只有一个,只需获取值即可

$text1 = $nodes->item(0)->nodeValue;

如果您只希望第一个匹配,而不希望匹配类似
的内容,那么我的答案的可能副本有一个使用DOMDocument的完整示例,不幸的是,它将返回字符串中不属于php或html标记(或NUL char)的所有文本。他所寻找的只是获取sIt的内部内容,值得注意的是,文本必须是有效的dom内容,否则xpath会对您、字符串、程序、用户和web主机生气。Adam@I收到此错误“调用未定义函数loadHTML()”,感谢您的帮助。这对嵌入代码也有效吗?哈哈,我的坏Muazam。我是一个Java爱好者,这就是为什么我写$dom.loadHTML,而它应该是$dom->loadHTML。您应该明确地使用这种方法,而不是选择的方法,因为它都是面向对象的,而且很简单,我得到了这个错误“Undefined offset:0”,你知道吗?在“$text2=$matches[0];”行中,“是的,$text字符串显然没有
。您可以使用上面我更新的示例进行尝试(该示例还通过正确检查是否找到任何匹配项来处理抵销问题)。谢谢,它起到了作用。但是你觉得我也能拿到标签吗?然后得到像嵌入标签这样的东西?谢谢!对于embed,只需执行与上面相同的操作,但每次使用“b”时都要使用“embed”。我不确定你想要怎样的标签,但是看起来你需要阅读更多关于正则表达式和preg_match的内容,这样你就可以根据需要制作这些标签了。上面显示了一般方法。祝你好运杰出的谢谢你对代码工作的帮助!非常感谢,我真的很感激!
strip_tags($text, '<b>');
$dom = new DOMDocument();
$dom->loadHTML($text);

$xpath = new DOMXpath($dom);
$nodes = $xpath->query('//b');
$text1 = $nodes->item(0)->nodeValue;
$text = "I will help you out, if <b>you see this message and never forget</b> blah blah blah";
$matches = array();
preg_match('@<b>.*?</b>@s', $text, $matches);
if ($matches) {
    $text2 = $matches[0];
    // Do something with $text2
}
else {
    // The string wasn't found, so do something else.
}